Tanggal mana yang sebaiknya Anda uji?
Separuh pengujian tanggal adalah menggeser jam. Separuh lainnya adalah mengetahui ke mana harus menggesernya. Kalkulator daring akan memberi tahu kapan sembilan puluh hari dari hari ini. Ia tidak akan memberi tahu bahwa jawabannya adalah hari libur bank, atau bahwa itu hari terakhir kuartal.
04/08/2008 ditempelkan, dan
kedua pembacaan ditampilkan, bukan satu yang ditebak.Hari kerja, dengan hari libur nyata
“Sepuluh hari kerja dari sekarang” bukan aritmetika - tergantung kalender negara mana yang Anda pakai untuk menghitung. Tanggal mulai yang sama, sepuluh hari yang sama, dua jawaban berbeda:
$ 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
Selisih satu hari, dan kalkulator akan memberi tahu mengapa jika Anda menanyakan tanggal di antaranya:
$ 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 Serikat dan Polandia disertakan sebagai kalender acuan, dipilih karena bersama-sama keduanya melatih setiap jenis aturan yang ada: tanggal tetap, hari ke-n dalam bulan, tanggal yang dihitung dari Paskah, dan aturan Amerika ketika hari libur yang jatuh pada hari Sabtu dirayakan pada hari Jumat sebelumnya. Menambahkan negara adalah file data, bukan perubahan kode.
Semua format sekaligus
Aplikasi yang diuji menginginkan tanggal dalam bentuk yang diharapkannya. Alih-alih meminta Anda mengonversi, kalkulator mencetak semuanya - dan topeng khusus untuk yang tidak cocok dengan standar apa pun.
$ 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)
Nilai epoch itu bukan kebetulan - 2147483647 persis bilangan terbesar yang dapat
ditampung bilangan bulat bertanda 32-bit, dan itulah seluruh alasan tanggal ini penting.
Membaca tanggal secara terbalik
Arah sebaliknya sama bergunanya: tempelkan tanggal dari log dan cari tahu apa itu. Ketika
formatnya ambigu - dan 04/08 ambigu di separuh dunia - kedua pembacaan
ditampilkan, bukan satu yang ditebak, karena dari tebakanlah laporan bug yang asli
berasal.
$ 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)
Terpaut empat bulan, pada hari yang berbeda dalam seminggu. Tanggal ISO tidak ambigu dan dibaca demikian, dan sesuatu yang sama sekali bukan tanggal ditolak, bukan ditebak.
Dibangun dari langkah, bukan dari kalimat
Sebuah momen adalah titik awal ditambah langkah, dan hasil antara ditampilkan setelah masing-masing, sehingga ekspresi yang menghasilkan jawaban mengejutkan menunjukkan di mana ia berbelok. Lima jenis langkah: bergeser menurut satuan, menetapkan jam dalam hari, melompat ke batas periode, pindah ke hari kerja terdekat, dan menyatakan ulang dalam zona waktu lain.
# Detik terakhir sebelum pergantian tahun chrono calc --base today --snap eoy # Sembilan puluh hari kerja dari sekarang, dalam kalender perbankan Amerika chrono calc --base today --shift +90bd --calendar us-banking # Delapan belas tahun dan sehari ke belakang, untuk pemeriksaan usia chrono calc --base today --shift -18y --shift -1d
Tanggal hasil hitungan apa pun langsung masuk ke sesi penggantian waktu, dan
--json mengeluarkan hasil yang sama dalam bentuk mesin.
Tanggal yang layak diuji →