Untuk menyatakan perbezaan tarikh sebagai tahun, bulan dan hari kalendar, kira bulan kalendar dahulu, kemudian baki hari. Panduan Numbers ini menggunakan tarikh penerbitan sintetik dan peraturan hujung bulan yang jelas supaya anda boleh menyemak hasilnya.

Contohnya, 18 Mei 2022 hingga 24 September 2025 menjadi 3 tahun, 4 bulan dan 6 hari mengikut kaedah di bawah. Anda akan membina hamparan elektronik yang boleh digunakan semula dan turut mengendalikan bulan Februari, tahun lompat serta tarikh seperti 31 Januari.

Tentukan maksud perbezaan kalendar

Perbezaan kalendar memerlukan tarikh mula dan peraturan untuk bergerak merentasi bulan. Membahagikan jumlah hari yang berlalu dengan 365 dan kemudian dengan 30 tidak dapat mengekalkan sempadan kalendar: panjang bulan dan tahun berbeza-beza. Dokumentasi API tarikh TC39 menjelaskan perbezaan ini apabila menerangkan sebab perbezaan tarikh secara lalai dinyatakan dalam hari melainkan unit yang lebih besar diminta. Dokumentasi Temporal.PlainDate.

Panduan ini menggunakan konvensyen berikut untuk tarikh Gregorian moden:

  1. Bergerak ke hadapan dari tarikh lebih awal ke tarikh lebih lewat.
  2. Cari anjakan bulan penuh terbesar yang tarikh sauh kalendarnya tidak melepasi tarikh akhir.
  3. Kekalkan nombor hari tarikh mula jika nombor itu wujud dalam bulan sasaran; jika tidak, gunakan hari terakhir bulan tersebut.
  4. Nyatakan setiap 12 bulan sebagai satu tahun, kemudian kira hari dari sauh hingga tarikh akhir.

Mengikut konvensyen ini, 31 Januari hingga 28 Februari 2025 ialah satu bulan. 31 Januari hingga 30 Mac 2025 ialah satu bulan dan 30 hari: sauh dua bulan akan jatuh pada 31 Mac, yang melepasi tarikh akhir. Ini ialah kesan daripada peraturan yang dipilih, bukannya definisi bulan yang universal.

Gunakan pengiraan tarikh berlalu dan bukannya mengira kedua-dua tarikh hujung sebagai hari yang termasuk. Oleh itu, tarikh yang sama menghasilkan sifar tahun, sifar bulan dan sifar hari. Jika tugas anda ialah mengira bilangan entri kalendar bertarikh yang termasuk dalam suatu julat, itu pengiraan yang berbeza.

Asingkan tarikh sivil daripada cap masa

Tarikh penerbitan seperti 2025-09-24 ialah tarikh sivil: tahun, bulan dan hari dalam kalendar. Tarikh itu tidak menetapkan jam atau mengenal pasti suatu detik. Cap masa seperti 2025-09-24T00:30:00+02:00 merangkumi waktu dan ofset UTC berangka, yang membolehkannya mengenal pasti suatu detik. RFC 3339 mentakrifkan sintaks tarikh penuh dan tarikh-masa yang sepadan. RFC 3339: Tarikh dan Masa di Internet: Cap Masa.

Ofset seperti +02:00 menerangkan hubungannya dengan UTC. Zon bernama seperti Europe/Paris menyediakan peraturan untuk menukar antara detik dan waktu tempatan; ofset yang berkenaan boleh berubah. RFC 9557 membezakan konsep ini dan menerangkan sebab ofset sahaja tidak dapat menyediakan peraturan yang diperlukan untuk aritmetik kalendar tempatan. RFC 9557: Cap Masa dengan Maklumat Tambahan.

Untuk hamparan elektronik ini, masukkan tarikh penerbitan yang dimaksudkan secara langsung. Jika sumber anda mengandungi cap masa, tentukan dahulu zon bernama yang menetapkan hari penerbitan dan tukarkan kedua-dua cap masa kepada tarikh dalam zon itu. Sebagai ilustrasi, 2025-09-24T00:30:00+02:00 ialah detik yang sama dengan 2025-09-23T22:30:00Z; memilih tarikh yang dipaparkan sebelum memilih zon rujukan boleh mengubah input sebanyak sehari.

Bina lembaran kerja perbezaan tarikh dalam Numbers

Anda memerlukan Numbers pada Mac dan jadual dengan lajur A hingga J serta sekurang-kurangnya dua baris. Gunakan baris 1 untuk label dan baris 2 untuk pengiraan. Formula di bawah menggunakan nama fungsi bahasa Inggeris dan pemisah koma.

Untuk memasukkan setiap formula, pilih sel destinasi, taip atau tampal formula yang bermula dengan =, kemudian tekan Return. Apple mendokumenkan bahawa menaip tanda sama dengan membuka Formula Editor, dengan bantuan fungsi tersedia dalam Functions Browser. Mengira nilai menggunakan data dalam sel jadual dalam Numbers pada Mac.

Masukkan tarikh mula dan akhir yang tidak mengelirukan

Labelkan A1 sebagai Tarikh mula dan B1 sebagai Tarikh akhir. Masukkan tarikh penerbitan sintetik berikut:

Sel Formula Tarikh yang dimaksudkan
A2 =DATE(2022,5,18) 18 Mei 2022
B2 =DATE(2025,9,24) 24 September 2025

Menggunakan DATE(year,month,day) mengelakkan kekaburan antara tafsiran rentetan tarikh mengikut wilayah. Apple secara khusus mengesyorkan fungsi ini untuk memastikan tafsiran tarikh yang konsisten merentas tetapan wilayah. Berikan tarikh kalendar yang sah, termasuk bilangan hari yang betul dalam setiap bulan. DATE.

Sebelum meneruskan, pastikan tarikh akhir sama atau lebih lewat daripada tarikh mula. Lembaran kerja ini sengaja mengira perbezaan ke hadapan; ia tidak mentakrifkan tempoh kalendar negatif.

Cari sauh kalendar terakhir sebelum tarikh akhir

Masukkan label dan formula ini dalam baris 2 mengikut turutan:

Sel Label baris 1 Formula baris 2
C2 Bulan calon =(YEAR(B2)-YEAR(A2))*12+MONTH(B2)-MONTH(A2)
D2 Bulan lengkap =C2-IF(DATE(YEAR(B2),MONTH(B2),MIN(DAY(A2),DAY(EOMONTH(B2,0))))>B2,1,0)
E2 Permulaan bulan sauh =EDATE(DATE(YEAR(A2),MONTH(A2),1),D2)
F2 Tarikh sauh =DATE(YEAR(E2),MONTH(E2),MIN(DAY(A2),DAY(EOMONTH(E2,0))))

Formula pertama mengira jarak antara kedudukan tahun-bulan bagi kedua-dua tarikh. Fungsi Apple YEAR dan MONTH mengekstrak komponen tersebut daripada nilai tarikh. YEAR, MONTH.

Formula kedua menguji sauh dalam bulan tarikh akhir. Harinya ialah nilai yang lebih kecil antara hari tarikh mula dengan hari terakhir bulan itu. Jika tarikh calon ini melepasi tarikh akhir, formula menolak satu bulan. Pelarasan bersyarat ini menggunakan tingkah laku IF yang didokumenkan. IF.

Formula selebihnya membina sauh sebenar. EDATE mengalihkan hari pertama bulan mula sebanyak anjakan yang dikira, sekali gus mengelakkan hari yang tidak sah semasa langkah perantaraan itu. EDATE.

Lembaran kerja kemudian menggunakan peraturan hujung bulan secara jelas: DAY mengekstrak nombor hari, EOMONTH memberikan tarikh terakhir bulan sasaran dan MIN memilih nombor hari yang lebih kecil. Ini menjadikan cara bulan yang lebih pendek dikendalikan jelas dalam formula. DAY, EOMONTH, MIN.

Nyatakan hasil sebagai tahun, bulan dan hari

Lengkapkan lembaran kerja dengan formula ini:

Sel Label baris 1 Formula baris 2
G2 Tahun =QUOTIENT(D2,12)
H2 Bulan =MOD(D2,12)
I2 Hari =DATEDIF(F2,B2,"D")
J2 Perbezaan kalendar =G2&" years, "&H2&" months, "&I2&" days"

QUOTIENT memberikan hasil bahagi nombor bulat dan MOD memberikan bakinya, lalu menukarkan kiraan bulan lengkap kepada tahun dan baki bulan. QUOTIENT, MOD.

Untuk tarikh sampel, D2 sepatutnya bernilai 40 dan F2 sepatutnya mewakili 18 September 2025. Enam hari antara sauh itu dengan 24 September melengkapkan hasilnya: 3 tahun, 4 bulan, 6 hari. Formula teks menggunakan label jamak tetap demi kesederhanaan; lajur angka berasingan masih tersedia untuk pengiraan lain.

Semak hujung bulan dan tahun lompat

Gunakan pasangan tarikh sintetik ini untuk menyemak konvensyen lembaran kerja. Gantikan hanya formula dalam A2 dan B2, sambil mengekalkan formula yang lain:

Tarikh mula Tarikh akhir Tahun, bulan, hari yang dijangka Tarikh sauh
18 Mei 2022 24 September 2025 3, 4, 6 18 September 2025
31 Januari 2025 28 Februari 2025 0, 1, 0 28 Februari 2025
31 Januari 2024 29 Februari 2024 0, 1, 0 29 Februari 2024
29 Februari 2024 28 Februari 2025 1, 0, 0 28 Februari 2025
31 Januari 2025 30 Mac 2025 0, 1, 30 28 Februari 2025
24 September 2025 24 September 2025 0, 0, 0 24 September 2025

Ini ialah contoh pengiraan mengikut peraturan yang dinyatakan. Algoritma sauh asas telah disemak menggunakan pengiraan Python yang deterministik, termasuk 10,000 pasangan tarikh yang dijana; antara muka Numbers sendiri tidak dijalankan.

Semak hasilnya dengan membina semula laluannya: ambil tarikh mula asal, gerakkannya sebanyak jumlah bulan dalam D2 menggunakan peraturan hujung bulan yang dinyatakan, kemudian tambah hari dalam I2. Anda sepatutnya sampai pada tarikh akhir. Sentiasa kira sauh bulan daripada tarikh mula asal: menggerakkannya berulang kali sebulan boleh menyebabkan hari asal hilang selepas Februari.

Mengapa tidak menggabungkan tiga hasil DATEDIF?

Apple mendokumenkan pilihan DATEDIF untuk tahun, bulan tanpa mengambil kira tahun, serta hari tanpa mengambil kira bulan dan tahun. Pilihan \"MD\" menggunakan pengiraan nombor hari tertentu yang melibatkan bulan gantian. Oleh itu, pilihan ini tidak patut dianggap bermaksud baki hari selepas pelarasan hujung bulan yang anda pilih. Lembaran kerja ini hanya menggunakan \"D\" antara sauh yang jelas dengan tarikh akhir. DATEDIF.

Cara operasi ini dipetakan kepada API tarikh

Untuk perisian yang melaksanakan tugas ini, TC39 mendokumenkan jenis tarikh sahaja, Temporal.PlainDate, serta operasi perbezaan yang mengambil kira kalendar. Meminta until dengan largestUnit: 'year' menghasilkan tempoh yang dinyatakan menggunakan tahun dan unit yang lebih kecil; jika pilihan lalai dikekalkan, perbezaan berasaskan hari akan dihasilkan. Dokumentasinya turut menerangkan penambahan bulan terkekang dan menolak perbezaan antara tarikh dengan sistem kalendar yang berbeza melainkan tarikh itu ditukar kepada kalendar yang sama. Dokumentasi Temporal.PlainDate.

Pilihan API tersebut mengukuhkan keputusan penting dalam lembaran kerja ini: kenal pasti input tarikh sahaja, pilih kalendar, tentukan unit terbesar dan kekalkan sauh untuk mentafsir bulan. Piawaian rentetan tarikh menerangkan perwakilan; memilih sesuatu perwakilan sahaja tidak menentukan konvensyen hujung bulan bagi tugas anda.

Selesaikan hasil yang tidak dijangka sebelum menggunakan output

Jika formula menghasilkan ralat, pilih penunjuk ralat untuk membaca mesejnya; panduan Numbers Apple mendokumenkan langkah diagnostik ini. Semak rujukan sel dan gunakan Functions Browser untuk memasukkan argumen jika pemasangan anda memerlukan pemisah formula yang berbeza. Mengira nilai menggunakan data dalam sel jadual dalam Numbers pada Mac.

Jika pengiraan kelihatan munasabah tetapi berbeza daripada alat lain, bandingkan peraturan hujung bulannya dengan peraturan lembaran kerja ini. Semak juga sama ada alat lain mengira kedua-dua tarikh hujung, menggunakan cap masa dan bukannya tarikh sivil, atau membundarkan hasilnya. Jangan masukkan tarikh terbalik dan input kosong dalam pengiraan ke hadapan ini; jangan gantikan ralat dengan sifar.

Untuk perbandingan tarikh penerbitan yang boleh digunakan semula, kekalkan tarikh mula, tarikh akhir dan sauh bersama ungkapan akhir. Ketiga-tiganya membolehkan hasil seperti “3 tahun, 4 bulan, 6 hari” dijejaki kepada pengiraan kalendar yang khusus.

Sumber