# makeweekdate - kod ve grafik fonksiyonu

Bu fonksiyon yıl, hafta sayısı ve haftanın günü ile hesaplanan bir tarih döndürür.

Söz Dizimi:

MakeWeekDate(weekyear [, week [, weekday [, first\_week\_day [, broken\_weeks [, reference\_day]]]]])

Dönüş verileri türü: dual

`makeweekdate()` fonksiyonu hem kod hem de grafik fonksiyonu olarak kullanılabilir. Fonksiyon, kendisine geçirilen parametrelere dayanarak tarihi hesaplar.

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| weekyear | Belirli bir tarih için `WeekYear()` fonksiyonu ile tanımlanan yıl, hafta numarasının ait olduğu yıldır.<br><br>Bilgi notuHafta yılı bazı durumlarda (ör. 1. hafta, önceki yılın aralık ayından başladığında) takvim yılından farklı olabilir. |
| week | Belirli bir tarih için `Week()` fonksiyonu ile tanımlanan hafta numarasıdır.<br><br>Hafta numarası belirtilmezse bu değer 1 olarak kabul edilir. |
| weekday | Söz konusu tarih için `WeekDay()` fonksiyonu ile tanımlanan haftanın günüdür. 0 haftanın ilk günü, 6 ise haftanın son günüdür.<br><br>Haftanın günü belirtilmezse bu değer 0 olarak kabul edilir.<br><br>Bilgi notu0, her zaman haftanın ilk günü; 6, her zaman haftanın son günüdür. Haftanın hangi gününe karşılık geldiği first\_week\_day parametresi ile belirlenir. Atlandığı takdirde, FirstWeekDay değişkeninin değeri kullanılır.<br><br>Parçalanmış haftalar, birleştirilmesi mümkün olmayan parametrelerle birlikte kullanılırsa bu, seçilen yıla ait olmayan bir sonuç ortaya çıkarabilir.<br><br>Örnek:<br><br>```<br>MakeWeekDate(2021,1,0,6,1)<br>```<br><br>Bu gün, belirtilen haftanın ilk günü (Pazar) olduğundan "27 Aralık 2020" sonucu döndürülür. 1 Ocak 2021 tarihi, Cuma günüydü. |
| first\_week\_day | Haftanın başladığı günü belirtir. Atlandığı takdirde, FirstWeekDay değişkeninin değeri kullanılır.<br><br>Olabilecek first\_week\_day değerleri Pazartesi için 0, Salı için 1, Çarşamba için 2, Perşembe için 3, Cuma için 4, Cumartesi için 5 ve Pazar için 6'dır.<br><br>Sistem değişkeni hakkında daha fazla bilgi için bkz. [FirstWeekDay](https://help.qlik.com/tr-TR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm). |
| broken\_weeks | broken\_weeks parametresi belirtilmezse haftaların parçalanmış olup olmadığını belirlemek için BrokenWeeks değişkeninin değeri kullanılır.<br><br>Sistem değişkeni hakkında daha fazla bilgi için bkz. [BrokenWeeks](https://help.qlik.com/tr-TR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm). |
| reference\_day | reference\_day parametresi belirtilmezse 1. haftayı tanımlamak üzere referans gün olarak Ocak ayındaki hangi günün ayarlanacağını belirlemek için ReferenceDay kullanılır.<br><br>Sistem değişkeni hakkında daha fazla bilgi için bkz. [ReferenceDay](https://help.qlik.com/tr-TR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm). |

## Ne zaman kullanılır?

`makeweekdate()` fonksiyonu kodda genel olarak tarih listesi oluşturmak veya giriş verilerinde yıl, hafta ve haftanın günü bilgileri sağlandığında tarihleri oluşturmak üzere veri oluştururken kullanılabilir.

Aşağıdaki örneklerde varsayılanlar:

```
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
```

Fonksiyon örnekleri

| Örnek | Sonuç |
| --- | --- |
| `makeweekdate(2014,6,6)` | şunu döndürür: 02/09/2014 |
| `makeweekdate(2014,6,1)` | şunu döndürür: 02/04/2014 |
| `makeweekdate(2014,6)` | 02/03/2014 döndürür (haftanın 0. günü olduğu varsayılır) |

## Bölgesel ayarlar

Aksi belirtilmedikçe bu konudaki örneklerde aşağıdaki tarih formatı kullanılır: AA/GG/YYYY. Tarih formatı, veri yükleme kodunuzda `SET DateFormat` deyiminde belirtilir. Varsayılan tarih formatı, bölgesel ayarlarınız ve diğer unsurlar nedeniyle sisteminizde farklı olabilir. Aşağıdaki örneklerdeki formatları ihtiyaçlarınıza uyacak şekilde değiştirebilirsiniz. Dilerseniz yükleme kodunuzdaki formatları aşağıdaki örneklere uyacak şekilde değiştirebilirsiniz.

Uygulamalardaki bölgesel ayarlarda Qlik Sense'in yüklü olduğu bilgisayarın veya sunucunun bölgesel sistem ayarları temel alınır. Eriştiğiniz Qlik Sense sunucusu İsveç olarak ayarlıysa, Veri yükleme düzenleyicisi tarihler, saat ve para birimi için İsveç bölgesel ayarlarını kullanır. Bu bölgesel format ayarları, Qlik Sense kullanıcı arayüzünde görüntülenen dil ayarlarıyla ilgili değildir. Qlik Sense, kullandığınız tarayıcıyla aynı dilde görüntülenir.

## Örnek 1 – gün dahil

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makeweekdate.htm)

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.

Yükleme kodu şunları içerir:

* `Sales` adlı tabloda 2022'nin haftalık satış toplamını içeren bir veri kümesi.

* Üç alanda sağlanan işlem tarihleri: `year`, `week` ve `sales`.

* İlgili haftanın Cuma gününün tarihini AA/GG/YYYY biçiminde döndürmek için `makeweekdate()` fonksiyonunun kullanıldığı `end_of_week` ölçümünü oluşturmak için kullanılan önceki bir yükleme.

Döndürülen tarihin Cuma günü olduğunu kanıtlamak için `weekday()` fonksiyonunun içine `end_of_week` ifadesi de yerleştirilerek haftanın günü gösterilir.

Komut dosyası

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;

Transactions:
    Load
        *,
        makeweekdate(transaction_year, transaction_week,4) as end_of_week,
        weekday(makeweekdate(transaction_year, transaction_week,4)) as week_day
        ; 
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `transaction_year`

* `transaction_week`

* `end_of_week`

* `week_day`

Sonuçlar tablosu

| transaction\_year | transaction\_week | end\_of\_week | week\_day |
| --- | --- | --- | --- |
| 2022 | 01 | 01/07/2022 | Cum |
| 2022 | 02 | 01/14/2022 | Cum |
| 2022 | 03 | 01/21/2022 | Cum |
| 2022 | 04 | 01/28/2022 | Cum |
| 2022 | 05 | 02/04/2022 | Cum |
| 2022 | 06 | 02/11/2022 | Cum |
| 2022 | 07 | 02/18/2022 | Cum |

"`end_of_week`" alanı, önceki LOAD deyiminde `makeweekdate()` fonksiyonu kullanılarak oluşturulur. Fonksiyonda yıl ve hafta bağımsız değişkenleri olarak `transaction_year`, `transaction_week` alanları geçirilir. Gün bağımsız değişkeni için 4 değeri kullanılır.

Ardından fonksiyon bu alanları birleştirip bir tarih alanına dönüştürür ve sonuçları `DateFormat` sistem değişkeninin biçiminde döndürür.

`week_day` alanını döndürmek için `makeweekdate()` fonksiyonu ile bağımsız değişkenleri de bir `weekday()` fonksiyonunun içine yerleştirilir; yukarıdaki tabloda görülebileceği gibi, `week_day` alanı bu tarihlerin gerçekten Cuma gününe denk geldiğini gösterir.

## Örnek 2 – gün hariç

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makeweekdate.htm)

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.

Yükleme kodu şunları içerir:

* Sales adlı tabloda 2022'nin haftalık satış toplamlarını içeren bir veri kümesi.

* Üç alanda sağlanan işlem tarihleri: year, week ve sales.

* makeweekdate() fonksiyonu kullanılarak first\_day\_of\_week hesaplamasını oluşturmak için kullanılan önceki bir yükleme. Bu, söz konusu haftanın Pazartesi gününün tarihini AA/GG/YYYY biçiminde döndürür.

Döndürülen tarihin Pazartesi günü olduğunu kanıtlamak için weekday() fonksiyonunun içine first\_day\_of\_week ifadesi de yerleştirilerek haftanın günü gösterilir.

Komut dosyası

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;

Transactions:
    Load
        *,
        makeweekdate(transaction_year, transaction_week) as first_day_of_week,
        weekday(makeweekdate(transaction_year, transaction_week)) as week_day
        ; 
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* transaction\_year

* transaction\_week

* first\_day\_of\_week

* week\_day

Sonuçlar tablosu

| transaction\_year | transaction\_week | first\_day\_of\_week | week\_day |
| --- | --- | --- | --- |
| 2022 | 01 | 01/03/2022 | Pzt |
| 2022 | 02 | 01/10/2022 | Pzt |
| 2022 | 03 | 01/17/2022 | Pzt |
| 2022 | 04 | 01/24/2022 | Pzt |
| 2022 | 05 | 01/31/2022 | Pzt |
| 2022 | 06 | 02/07/2022 | Pzt |
| 2022 | 07 | 02/14/2022 | Pzt |

first\_day\_of\_week alanı, önceki LOAD deyiminde makeweekdate() fonksiyonu kullanılarak oluşturulur. transaction\_year ve transaction\_week parametreleri fonksiyonun bağımsız değişkenleri olarak geçirilir ve day parametresi boş bırakılır.

Ardından fonksiyon bu alanları birleştirip bir tarih alanına dönüştürür ve sonuçları DateFormat sistem değişkeninin biçiminde döndürür.

week\_day alanını döndürmek için makeweekdate() fonksiyonu ile bağımsız değişkenleri de bir weekday() fonksiyonunun içine yerleştirilir. Yukarıdaki tabloda görüldüğü gibi, makeweekdate() fonksiyonunda söz konusu parametre boş bırakıldığından week\_day alanında her seferinde Pazartesi sonucunu döndürülüyor. Bu fonksiyonun varsayılan değeri 0 (haftanın ilk günü); haftanın ilk günü ise FirstWeekDay sistem değişkeni ile Pazartesi olarak ayarlanmıştır.

## Örnek 3 – Grafik nesnesi örneği

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makeweekdate.htm)

#### Komut dosyası ve grafik ifadesi

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.

Yükleme kodu şunları içerir:

* Sales adlı tabloda 2022'nin haftalık satış toplamlarını içeren bir veri kümesi.

* Üç alanda sağlanan işlem tarihleri: year, week ve sales.

Bu örnekte, ilk örnekteki end\_of\_week hesaplamasına eşdeğer bir hesaplama oluşturmak için grafik nesnesi kullanılır. Bu hesaplama, söz konusu haftanın Cuma gününün tarihini AA/GG/YYYY biçiminde döndürmek için makeweekdate() fonksiyonunu kullanır.

Döndürülen tarihin Cuma gününe denk geldiğini kanıtlamak için haftanın gününü döndürecek ikinci bir hesaplama oluşturulur.

Komut dosyası

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;

Master_Calendar:
Load * Inline [
transaction_year, transaction_week, sales
2022, 01, 10000
2022, 02, 11250
2022, 03, 9830
2022, 04, 14010
2022, 05, 28402
2022, 06, 9992
2022, 07, 7292
];
```

Sonuçlar

Aşağıdakileri yapın:

1. Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

   * transaction\_year

   * transaction\_week

2. İlk örneğin end\_of\_week alanındakine eşdeğer bir hesaplama gerçekleştirmek için şu hesaplamayı oluşturun:

   =makeweekdate(transaction\_year,transaction\_week,4)

3. Her işlemin haftanın hangi gününde gerçekleştiğini hesaplamak için şu hesaplamayı oluşturun:

   =weekday(makeweekdate(transaction\_year,transaction\_week,4))

Sonuçlar tablosu

| transaction\_year | transaction\_week | =makeweekdate(transaction\_year,transaction\_week,4) | =weekday(makeweekdate(transaction\_year,transaction\_week,4)) |
| --- | --- | --- | --- |
| 2022 | 01 | 01/07/2022 | Cum |
| 2022 | 02 | 01/14/2022 | Cum |
| 2022 | 03 | 01/21/2022 | Cum |
| 2022 | 04 | 01/28/2022 | Cum |
| 2022 | 05 | 02/04/2022 | Cum |
| 2022 | 06 | 02/11/2022 | Cum |
| 2022 | 07 | 02/18/2022 | Cum |

Grafik nesnesinde makeweekdate() fonksiyonu kullanılır ve bir hesaplama olarak end\_of\_week ile eşdeğer bir alan oluşturulur. Yıl ve hafta bağımsız değişkenleri olarak transaction\_year ve transaction\_week alanları geçirilir. Gün bağımsız değişkeni için 4 değeri kullanılır.

Ardından fonksiyon bu alanları birleştirip bir tarih alanına dönüştürür ve sonuçları DateFormat sistem değişkeninin biçiminde döndürür.

İlk örnekteki week\_day alanına eşdeğer bir hesaplama döndürmek için makeweekdate() fonksiyonu ile bağımsız değişkenleri de bir weekday() fonksiyonunun içine yerleştirilir. Yukarıdaki tabloda görülebileceği gibi, sağ taraftaki son sütun bu tarihlerin Cuma gününe denk geldiğini gösterir.

## Örnek 4 – Senaryo

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makeweekdate.htm)

#### Komut dosyası ve grafik ifadesi

Genel bakış

Bu örnekte, 2022 yılının tüm Cuma günlerini içeren bir tarih listesi oluşturun.

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir sekmeye ekleyin.

Komut dosyası

```
SET DateFormat='MM/DD/YYYY';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;

Calendar:
    load
	    *,
        weekday(date) as weekday
    where year(date)=2022;
load
    makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
```

Sonuçlar

Sonuçlar tablosu

| tarih | weekday |
| --- | --- |
| 01/07/2022 | Cum |
| 01/14/2022 | Cum |
| 01/21/2022 | Cum |
| 01/28/2022 | Cum |
| 02/04/2022 | Cum |
| 02/11/2022 | Cum |
| 02/18/2022 | Cum |
| 02/25/2022 | Cum |
| 03/04/2022 | Cum |
| 03/11/2022 | Cum |
| 03/18/2022 | Cum |
| 03/25/2022 | Cum |
| 04/01/2022 | Cum |
| 04/08/2022 | Cum |
| 04/15/2022 | Cum |
| 04/22/2022 | Cum |
| 04/29/2022 | Cum |
| 05/06/2022 | Cum |
| 05/13/2022 | Cum |
| 05/20/2022 | Cum |
| 05/27/2022 | Cum |
| 06/03/2022 | Cum |
| 06/10/2022 | Cum |
| 06/17/2022 | Cum |
| + 27 satır daha |  |

makeweekdate() fonksiyonu 2022'deki tüm Cuma günlerini bulur. Hafta parametresi olarak -2 kullanılması, hiçbir tarihin atlanmamasını sağlar. Son olarak, her date değerinin Cuma günü olduğunu gösterip netlik sağlamak için önceki bir yükleme ek bir weekday alanı oluşturur.