Chrono Mock
DilTürkçe

Hangi tarihi test etmelisiniz?

Tarih testinin yarısı saati oynatmaktır. Diğer yarısı onu nereye oynatacağınızı bilmektir. Bir çevrimiçi hesap makinesi bugünden doksan gün sonrasının ne olduğunu söyler. Cevabın bir resmî tatil olduğunu ya da çeyreğin son günü olduğunu söylemez.

Chrono Mock hesap makinesi. Solda açıklamalarıyla birlikte aranabilir bir senaryo listesi iniyor, ortada tarih oluşturucu var ve sağdaki sonuç sütunu her biçimi, yanında bir kopyala düğmesiyle ve altında Use this date ile listeliyor. Oluşturucunun altında, yapıştırılan 04/08/2008 belirsiz olarak bildiriliyor; hem Amerikan hem Polonya okuması gösteriliyor.
Oluşturucunun altında ters yön var: 04/08/2008 yapıştırılıyor ve biri tahmin edilmek yerine her iki okuma da gösteriliyor.

Gerçek tatillerle iş günleri

“On iş günü sonrası” aritmetik değildir - hangi ülkenin takvimine göre saydığınıza bağlıdır. Aynı başlangıç tarihi, aynı on gün, iki farklı cevap:

$ chrono calc --base 2027-09-01T00:00:00 --shift +10bd --calendar us-banking
  result:  2027-09-16T00:00:00

$ chrono calc --base 2027-09-01T00:00:00 --shift +10bd --calendar pl
  result:  2027-09-15T00:00:00

Bir gün fark var ve aradaki tarihi sorarsanız hesap makinesi nedenini söyler:

$ chrono calc --base 2027-09-06T00:00:00 --calendar us-banking
  metadata:
    weekday       Monday
    business day  no  (us-banking)
    holiday       Labor Day
  what this date lands on:
    public holiday
    (weekend and holiday marks follow the us-banking calendar)

Amerika Birleşik Devletleri ve Polonya referans takvimleri olarak gelir; ikisi birlikte var olan her kural türünü işletir: sabit tarihler, ayın n’inci belirli hafta günü (örneğin üçüncü Pazartesi), Paskalya’dan hesaplanan tarihler ve Cumartesi’ye denk gelen bir tatilin önceki Cuma gözlemlendiği Amerikan kuralı. Bir ülke eklemek bir veri dosyasıdır, kod değişikliği değil.

Tüm biçimler bir arada

Test edilen uygulama tarihi beklediği biçimde ister. Sizi dönüştürmeye zorlamak yerine hesap makinesi hepsini yazdırır - ve hiçbir standarda uymayanlar için özel bir maske sunar.

$ chrono calc --preset year-2038 --zone +00:00
Chrono Mock - date calculator
  preset:   year-2038 - 2038 boundary
  explains: Does the app survive the 32-bit Unix time boundary (2038-01-19T03:14:07Z)?
  result:  2038-01-19T03:14:07
  formats:
    ISO date      2038-01-19
    ISO datetime  2038-01-19T03:14:07+00:00
    US            01/19/2038
    PL            19.01.2038
    epoch (s)     2147483647
    epoch (ms)    2147483647000
    FILETIME      137919572470000000
    RFC 1123      Tue, 19 Jan 2038 03:14:07 GMT
  ...
  what this date lands on:
    at or past the 2038-01-19T03:14:07Z 32-bit time_t limit (Y2038)

O epoch değeri tesadüf değil - 2147483647, işaretli 32 bitlik bir tam sayının tutabileceği en büyük sayıdır; bu tarihin önemli olmasının bütün nedeni de budur.

Bir tarihi geriye doğru okumak

Ters yön de aynı derecede yararlıdır: bir günlükten bir tarih yapıştırın ve ne olduğunu öğrenin. Biçim belirsiz olduğunda - ve 04/08 dünyanın yarısında belirsizdir - biri tahmin edilmek yerine her iki okuma da gösterilir, çünkü ilk hata raporu tam da tahminden doğmuştu.

$ chrono calc --analyze 04/08/2027
Chrono Mock - date analysis
  input:   04/08/2027  (ambiguous - month/day order differs by locale)
  US MM/DD/YYYY:  2027-04-08  (Thursday)
  PL DD/MM/YYYY:  2027-08-04  (Wednesday)

Dört ay arayla ve farklı haftanın günlerinde. Bir ISO tarihi belirsiz değildir ve öyle okunur; hiç tarih olmayan bir şey ise tahmin edilmek yerine reddedilir.

Bir cümleden değil, adımlardan kurulur

Bir an, bir başlangıç noktası artı adımlardır ve ara sonuç her birinden sonra gösterilir; böylece şaşırtıcı bir sonuç üreten bir ifade size nerede saptığını gösterir. Beş tür adım: bir birimle kaydırma, günün saatini ayarlama, bir dönem sınırına atlama, en yakın iş gününe geçme ve başka bir saat diliminde yeniden ifade etme.

# Bir yıl dönmeden önceki son saniye
chrono calc --base today --snap eoy

# Doksan iş günü sonrası, Amerikan bankacılık takviminde
chrono calc --base today --shift +90bd --calendar us-banking

# On sekiz yıl ve bir gün geriye, bir yaş kontrolü için
chrono calc --base today --shift -18y --shift -1d

Hesaplanan herhangi bir tarih doğrudan bir değişiklik oturumuna girer ve --json aynı sonucu makine biçiminde verir. Test etmeye değer tarihler →

Deneyin