İçeriğe geç

Kitaplar / Yöntem Birimler ve Araçlar Kılavuzu / 4. Takvim: tarih ve saat

4. Takvim: tarih ve saat

Takvim biriminde zaman, 1 Ocak 1970’ten beri geçen saniye sayısıdır (Unix saniyesi) ve bir tamsayıyla tutulur. Bu sayede iki tarih < ile karşılaştırılır, sıralanır, birbirinden çıkarılır. Hesaplar UTC’de yapılır; yerel saati yazmak için YerelFark (dakika) eklenir.

Yöntem
program SınavTakvimi
{ Takvim birimi: tarih okuma, yazma ve gün hesabı. }
kullan Takvim

değişken
  bugün, sınav, teslim: tamsayı

başla
  BenzetimZamanı(TarihYap(2026, 11, 10, 9, 0, 0), 180)   { testler için sabit saat; UTC+3 }
  bugün := Şimdi
  sınav := TarihOku('15.01.2027', 'GG.AA.YYYY')
  yaz('Bugün : ' + TarihYaz(bugün + YerelFark * 60, 'G AAAA YYYY GGGG, SS:DD'), 1)
  yaz('Sınav : ' + TarihYaz(sınav, 'G AAAA YYYY GGGG') + ' — ' + GünFarkı(bugün, sınav) + ' gün kaldı', 1)
  teslim := AyEkle(GünBaşı(bugün), 1)
  yaz('Ödev teslimi (bir ay sonra): ' + TarihYaz(teslim, 'GG.AA.YYYY') + ', ' + HaftaNo(teslim) + '. hafta', 1)
  eğer HaftaGünü(teslim) > 5 ise yaz('  Hafta sonuna denk geliyor; pazartesi: ' + TarihYaz(GünEkle(teslim, 8 - HaftaGünü(teslim)), 'GG.AA.YYYY'), 1)
  yaz('Şubat 2028 ' + AydakiGünSayısı(2028, 2) + ' gün; 2028 artık yıl mı: ' + Metin(ArtıkYıl(2028)), 1)
bitir.
Çıktı
Bugün : 10 Kasım 2026 Salı, 12:00
Sınav : 15 Ocak 2027 Cuma — 66 gün kaldı
Ödev teslimi (bir ay sonra): 10.12.2026, 50. hafta
Şubat 2028 29 gün; 2028 artık yıl mı: doğru

Kalıplar. TarihYaz ve TarihOku aynı simgeleri kullanır:

Simge Anlamı Örnek
YYYY, YY Yıl 2026, 26
AA, A Ay (iki haneli, yalın) 03, 3
AAAA, AAA Ay adı, kısa ay adı Mart, Mar
GG, G Gün (iki haneli, yalın) 05, 5
GGGG, GGG Gün adı, kısa gün adı Perşembe, Per
SS, DD, SN Saat, dakika, saniye 09, 05, 30

Küçük harfler ve noktalama olduğu gibi yazılır. Büyük harfli düz metin köşeli ayraca alınır: '[Saat] SS:DD'. Kalıp verilmezse TarihOku 2026-11-10, 2026-11-10 19:30 ve 2026-11-10 19:30:00 biçimlerini tanır.

Üye Ne yapar
Şimdi, YerelFark Şu an (Unix saniyesi) ve yerel saatin UTC’den farkı (dakika)
TarihYap(yıl, ay, gün [, saat, dakika, saniye]) Tarihten zaman üretir; geçersiz tarihte hata verir
Parçala(zaman) yıl, ay, gün, saat, dakika, saniye, haftaGünü, yılGünü içeren sözlük
TarihYaz(zaman [, kalıp]), TarihOku(metin [, kalıp]) Metne çevirir, metinden okur
SaniyeEkle, GünEkle, AyEkle, YılEkle Zamana ekler (eksi sayı çıkarır); 31 Ocak + 1 ay = şubatın son günü
GünFarkı(başlangıç, bitiş), GünBaşı(zaman) Takvim günü farkı; günün 00:00’ı
HaftaGünü (1 = Pazartesi), HaftaNo (ISO haftası), GünAdı, AyAdı Takvim bilgisi
ArtıkYıl(yıl), AydakiGünSayısı(yıl, ay), GeçerliTarih(yıl, ay, gün) Denetimler
BenzetimZamanı(zaman [, fark]) Testler için saati sabitler

Birim 1–9999 yılları arasında çalışır. Saat dilimi adları ve yaz saati kuralları yoktur; yalnızca UTC ve dakika cinsinden sabit bir fark vardır.