Dua selang masa bertindih apabila setiap satunya bermula sebelum selang yang satu lagi berakhir. Ujian itu merangkumi keadaan apabila satu selang terkandung sepenuhnya dalam selang yang lain. Begini cara menggunakannya dalam Numbers pada Mac anda untuk membandingkan tempoh penerbitan, mengesahkan tarikh dan mengendalikan titik hujung yang bersentuhan.

Aliran kerja ini ditujukan kepada sesiapa yang merancang tempoh penerbitan dalam hamparan. Semua tarikh dan label di bawah ialah data rekaan. Anda akan membandingkan dua tempoh bagi setiap baris dan mendapat keputusan yang jelas tanpa menulis program.

Apakah yang dikira sebagai pertindihan?

Mula-mula, tentukan sama ada sesuatu selang merangkumi detik akhirnya. Artikel ini menggunakan selang yang merangkumi permulaan tetapi tidak merangkumi pengakhiran, ditulis sebagai [start, end). Tempoh dari 09:00 hingga 12:00 merangkumi waktu mula dan berakhir pada tengah hari. Oleh itu, tempoh lain yang bermula pada 12:00 tidak bertindih dengannya. Ini selaras dengan konvensyen acara dalam iCalendar: DTSTART bersifat inklusif dan DTEND bersifat bukan inklusif. RFC 5545, bahagian 3.6.1.

Bagi dua selang sah yang mempunyai tempoh positif, ujian pertindihan lengkap ialah:

A.start < B.end AND B.start < A.end

Logiknya mudah. Dua tempoh berasingan jika A berakhir sebelum atau tepat ketika B bermula, atau B berakhir sebelum atau tepat ketika A bermula. Jika kedua-dua syarat pemisahan itu tidak dipenuhi, kedua-duanya berkongsi masa. Huraian ini juga menjelaskan sebab keadaan satu tempoh terkandung dalam tempoh yang lain tidak memerlukan syarat pertindihan tambahan.

Katakan A berlangsung dari 09:00 hingga 12:00. Jika B berlangsung dari 08:00 hingga 13:00, tiada titik hujung B berada dalam A, namun B merangkumi seluruh A. Ujian yang hanya memeriksa sama ada B bermula atau berakhir dalam A akan terlepas kes ini. Peraturan dua perbandingan dapat mengesannya.

Simpan set ujian rekaan ini bersebelahan hamparan anda. Semua waktu di bawah ialah pada 10 November 2026 dan menggunakan asas masa yang sama.

Tempoh A Tempoh B Keputusan dijangka Sebab
09:00–12:00 11:00–13:00 Bertindih Persilangan separa
09:00–12:00 10:00–11:00 Bertindih A merangkumi B
09:00–12:00 08:00–13:00 Bertindih B merangkumi A
09:00–12:00 09:00–12:00 Bertindih Tempoh yang sama
09:00–12:00 12:00–13:00 Tidak bertindih Titik hujung sahaja yang bersentuhan
09:00–12:00 13:00–14:00 Tidak bertindih Terdapat jurang antara tempoh

Sediakan tarikh dan waktu yang boleh dibandingkan dalam Numbers

Gunakan tarikh dan waktu penuh untuk tempoh penerbitan bermasa. Waktu pada jam sahaja tidak dapat membezakan pagi ini daripada pagi esok. Numbers juga mengisi komponen yang tiada: jika anda memasukkan waktu sahaja, tarikh hari ini akan ditambahkan. Menyembunyikan tarikh atau waktu mengubah paparannya, tetapi komponen yang disimpan masih digunakan dalam pengiraan. Format tarikh, mata wang dan banyak lagi dalam Numbers pada Mac.

Cipta satu jadual dengan lajur berikut, menggunakan baris 1 untuk tajuk:

Lajur Tajuk Tujuan
A Pasangan Label neutral untuk perbandingan
B Mula A Permulaan tempoh pertama
C Tamat A Pengakhiran eksklusif tempoh pertama
D Mula B Permulaan tempoh kedua
E Tamat B Pengakhiran eksklusif tempoh kedua
F Semakan input Sama ada perbandingan boleh dibuat
G Keputusan pertindihan Jawapan

Pilih sel input dalam lajur B hingga E. Dalam bar sisi Format, pilih Cell, kemudian tetapkan Data Format kepada Date & Time. Pilih paparan yang menunjukkan tarikh dan waktu. Smart Cell View di bahagian bawah tetingkap membolehkan anda memeriksa kedua-dua komponen bagi nilai yang dipilih. Arahan Apple tentang pemformatan tarikh dan waktu.

Untuk contoh pertama yang boleh diulang, masukkan Sample pair dalam A2 dan masukkan formula berikut dalam sel yang dinyatakan. Formula ini membina A sebagai 09:00–12:00 dan B sebagai 10:00–11:00 pada 10 November 2026. Anggap setiap titik hujung dalam contoh ini sebagai UTC; catatkan konvensyen itu di sebelah jadual.

Sel Formula
B2 =DATE(2026,11,10)+DURATION(0,0,9)
C2 =DATE(2026,11,10)+DURATION(0,0,12)
D2 =DATE(2026,11,10)+DURATION(0,0,10)
E2 =DATE(2026,11,10)+DURATION(0,0,11)

DATE membina tarikh daripada tahun, bulan dan hari, sekali gus mengelakkan rentetan tarikh yang samar. DURATION menerima minggu, hari dan jam sebagai tiga argumen pertamanya, jadi DURATION(0,0,9) membekalkan sembilan jam. Ini ialah formula hamparan, bukannya arahan Terminal. DATE, DURATION.

Untuk memasukkan formula, pilih sel destinasi, taip =, masukkan ungkapan dan tekan Return. Numbers menyokong perbandingan antara nilai sel dan memaparkan hasil Boolean. Jika tetapan anda menggunakan koma sebagai pemisah perpuluhan, gunakan koma bernoktah antara argumen fungsi dan bukannya koma. Kira nilai menggunakan data dalam sel jadual dalam Numbers pada Mac, Gambaran keseluruhan fungsi.

Sahkan tempoh sebelum menguji pertindihan

Untuk tugasan ini, pastikan terdapat empat nilai tarikh/waktu yang dikenal pasti dan setiap titik hujung berakhir selepas waktu mula yang sepadan. Selang yang terbalik perlu dibetulkan. Tempoh penerbitan yang panjangnya sifar juga memerlukan keputusan berasingan kerana, mengikut konvensyen yang dipilih, ia tidak mewakili sebarang masa yang diduduki.

Masukkan formula ini dalam F2:

=IF(AND(ISDATE(B2),ISDATE(C2),ISDATE(D2),ISDATE(E2)),IF(AND(B2<C2,D2<E2),\"Ready\",\"Invalid window\"),\"Check dates\")

Ujian luar memeriksa sama ada setiap titik hujung ialah nilai tarikh. Ujian dalam memeriksa susunan kedua-dua tempoh. ISDATE mengenal pasti nilai tarikh, AND menghendaki semua syaratnya benar, dan IF memilih hasil yang sepadan. ISDATE, AND, IF.

Contoh itu sepatutnya memulangkan Ready. Jika hasilnya Check dates, periksa sel input dan bukannya menganggap baris itu sebagai dua tempoh berasingan. Jika hasilnya Invalid window, periksa titik hujung yang sama, entri terbalik atau tarikh hari berikutnya yang tertinggal. Biarkan sebarang ralat formula kelihatan sehingga puncanya dibetulkan.

Kesan pertindihan, termasuk keadaan apabila satu tempoh terkandung sepenuhnya

Masukkan formula ini dalam G2:

=IF(F2=\"Ready\",IF(AND(B2<E2,D2<C2),\"Overlap\",\"No overlap\"),\"Check inputs\")

Bagi baris yang sah, dua perbandingan itu melaksanakan peraturan pertindihan secara langsung: B2 ialah waktu mula A, E2 ialah waktu tamat B, D2 ialah waktu mula B dan C2 ialah waktu tamat A. AND memulangkan benar hanya apabila kedua-dua perbandingan berjaya. Dokumentasi AND daripada Apple.

Contoh itu memulangkan Overlap kerana B berada sepenuhnya dalam A. Ubah waktu dalam D2 kepada 8 dan waktu dalam E2 kepada 13; hasilnya masih sepatutnya Overlap, kali ini kerana B merangkumi A. Ubahnya kepada 12 dan 13; hasilnya sepatutnya menjadi No overlap.

Gunakan jadual ujian terdahulu untuk menyemak kes yang selebihnya. Untuk perbandingan tambahan, masukkan pasangan lain pada baris berikutnya dan salin formula F dan G ke baris itu. Periksa formula yang disalin untuk memastikan rujukannya menghala ke baris baharu.

Susun atur ini membandingkan dua tempoh yang diberikan pada setiap baris. Susun atur ini tidak membandingkan setiap tempoh dalam senarai acara berasingan dengan setiap tempoh yang lain secara automatik. Bagi senarai kecil, cipta satu baris untuk setiap pasangan unik yang perlu diperiksa dan elakkan pasangan terbalik yang berulang.

Kenal pasti tempoh yang merangkumi tempoh satu lagi

Pertindihan dan keadaan satu tempoh terkandung dalam tempoh yang lain menjawab soalan yang berbeza. Jika anda juga perlu tahu sama ada A merangkumi B sepenuhnya, tambah lajur H bernama A contains B dan masukkan:

=IF(F2=\"Ready\",AND(B2<=D2,E2<=C2),\"Check inputs\")

Untuk B contains A, tambah lajur I dan masukkan:

=IF(F2=\"Ready\",AND(D2<=B2,C2<=E2),\"Check inputs\")

Ujian merangkumi ini membenarkan sempadan dikongsi. Oleh itu, tempoh yang sama akan memulangkan TRUE dalam kedua-dua lajur. Jika tugasan anda memerlukan ruang pada kedua-dua sisi, gantikan kedua-dua perbandingan bukan ketat dalam formula merangkumi yang berkenaan dengan perbandingan ketat. Itu ialah syarat editorial tambahan; ia tidak mengubah keputusan pertindihan.

Asingkan tarikh kalendar, detik, ofset dan zon

Tentukan maksud input anda sebelum menggunakan formula. Tarikh kalendar seperti 2026-11-10 menamakan hari kalendar tanpa menetapkan zon waktu. Tarikh sedemikian sesuai untuk label penerbitan sepanjang hari. API Temporal.PlainDate TC39 memodelkan jenis tarikh ini secara khusus, secara berasingan daripada zon. Temporal.PlainDate.

Detik mengenal pasti satu titik pada garis masa. Ofset seperti +01:00 menerangkan perbezaan daripada UTC pada waktu itu. Zon bernama seperti Europe/Paris membekalkan peraturan waktu serantau. Semua ini ialah maklumat yang berbeza: ofset tetap tidak membawa peraturan zon bernama yang berubah mengikut masa. Temporal.ZonedDateTime.

Contohnya, cap masa rekaan 2026-11-10T10:00:00+01:00 dan 2026-11-10T09:00:00Z mengenal pasti detik yang sama. Membandingkan waktu paparannya sahaja akan menghasilkan susunan yang salah.

Formula hamparan di atas membandingkan nilai yang anda berikan; formula tersebut tidak mempunyai langkah penukaran zon bernama. Bagi tempoh bermasa yang berasal daripada zon berbeza, tentukan dahulu detik bagi setiap titik hujung dan nyatakan setiap titik hujung dalam UTC. Simpan maklumat zon asal secara berasingan jika anda perlu membina semula jadual tempatan yang dimaksudkan.

Untuk penukaran automatik, laluan API yang didokumenkan ialah membina Temporal.ZonedDateTime dengan zonanya dan menukarkannya menggunakan toInstant(). Kaedah compare() menyusun waktu yang tepat. Apabila waktu tempatan dilangkau atau berulang semasa peralihan ofset, API menyediakan pilihan nyahkekaburan yang jelas, termasuk reject. Selesaikan kekaburan itu sebelum mengimport nilai untuk perbandingan. Penukaran, perbandingan dan nyahkekaburan Temporal.ZonedDateTime.

Bagi tempoh sepanjang hari, kekalkan tugasan dalam tarikh kalendar. Tempoh penerbitan rekaan yang meliputi 10 hingga 12 November secara inklusif boleh diwakili sebagai [2026-11-10, 2026-11-13). iCalendar juga menggunakan hari selepas hari terakhir yang disertakan sebagai pengakhiran eksklusif acara sepanjang hari. Dalam Numbers, masukkan sempadan ini dengan formula DATE supaya komponen waktunya konsisten. Contoh acara berbilang hari dalam RFC 5545.

Kendalikan kes sempadan tanpa mengubah soalan

Selang yang merentasi malam memerlukan tarikh berikutnya pada nilai waktu tamat. Tempoh dari 10 November pada 23:00 hingga 11 November pada 01:00 adalah sah. Jika kedua-dua titik hujung dimasukkan pada 10 November, susunannya menjadi terbalik. Betulkan tarikhnya dan bukannya menukar nilai secara automatik kerana pertukaran itu boleh menyembunyikan kesilapan entri.

Jika titik hujung yang bersentuhan patut dikira sebagai pertindihan untuk tugasan khusus anda, gunakan AND(B2<=E2,D2<=C2) dalam formula G2. Kekalkan semakan input tempoh positif melainkan anda telah menentukan secara berasingan cara acara titik harus berfungsi. Ini mengubah dasar sempadan dan perlu dicatatkan di sebelah jadual.

Dasar itu juga penting apabila menggunakan API asli Mac. Apple mendokumenkan DateInterval Foundation sebagai selang tertutup yang merangkumi kedua-dua titik hujung dan membenarkan tempoh sifar. API itu menyediakan intersects dan intersection(with:), tetapi model selang tertutupnya berbeza daripada konvensyen iCalendar yang digunakan di sini. Untuk pertindihan kalendar yang tempohnya positif, gunakan ujian titik hujung ketat yang dinyatakan dengan jelas dan bukannya menganggap dasar persilangan API sepadan dengan tugasan anda. DateInterval.

Sebelum bergantung pada sesuatu perbandingan, semak tiga perkara: setiap titik hujung mempunyai asas tarikh dan waktu yang dimaksudkan, kedua-dua tempoh mempunyai panjang positif, dan contoh titik hujung bersentuhan menghasilkan keputusan yang anda pilih. Apabila keputusan ini dinyatakan dengan jelas, dua perbandingan yang sama mengendalikan pertindihan separa, keadaan satu tempoh terkandung sepenuhnya dan tempoh yang sama.

Sumber