Aby wyrazić różnicę między datami w latach kalendarzowych, miesiącach i dniach, najpierw policz miesiące kalendarzowe, a następnie pozostałe dni. Ten poradnik dotyczący Numbers wykorzystuje przykładowe daty publikacji i jawnie określoną zasadę końca miesiąca, dzięki czemu możesz sprawdzić wynik.

Na przykład okres od 18 maja 2022 r. do 24 września 2025 r. wynosi 3 lata, 4 miesiące i 6 dni według opisanej poniżej metody. Utworzysz arkusz kalkulacyjny wielokrotnego użytku, który obsługuje także luty, lata przestępne i daty takie jak 31 stycznia.

Wybierz sposób rozumienia różnicy kalendarzowej

Do obliczenia różnicy kalendarzowej potrzebna jest data początkowa oraz zasada przesuwania się między miesiącami. Dzielenie upływających dni przez 365, a następnie przez 30, nie pozwala zachować granic kalendarzowych: miesiące i lata mają różną długość. Dokumentacja interfejsu dat TC39 wyraźnie wskazuje tę różnicę, wyjaśniając, dlaczego różnice między datami są domyślnie wyrażane w dniach, chyba że zostanie wybrana większa jednostka. Dokumentacja Temporal.PlainDate.

W tym poradniku dla współczesnych dat gregoriańskich stosujemy następującą konwencję:

  1. Przesuwaj się od wcześniejszej daty do późniejszej.
  2. Znajdź największe przesunięcie o pełną liczbę miesięcy, którego data bazowa nie przypada po dacie końcowej.
  3. Zachowaj numer dnia początkowego, jeśli występuje w miesiącu docelowym; w przeciwnym razie użyj ostatniego dnia tego miesiąca.
  4. Każde 12 miesięcy wyraź jako jeden rok, a następnie policz dni od daty bazowej do daty końcowej.

Według tej konwencji okres od 31 stycznia do 28 lutego 2025 r. wynosi jeden miesiąc. Okres od 31 stycznia do 30 marca 2025 r. wynosi jeden miesiąc i 30 dni: data bazowa dla dwóch miesięcy przypadałaby 31 marca, czyli po dacie końcowej. To konsekwencje przyjętej zasady, a nie uniwersalne definicje miesiąca.

Używaj liczenia upływających dni, a nie wliczania obu dat granicznych. Dlatego identyczne daty dają zero lat, zero miesięcy i zero dni. Jeśli chcesz policzyć, ile datowanych dni kalendarzowych obejmuje dany zakres, jest to inne obliczenie.

Oddziel daty kalendarzowe od znaczników czasu

Data publikacji, taka jak 2025-09-24, jest datą kalendarzową: rokiem, miesiącem i dniem w kalendarzu. Nie określa godziny ani konkretnego momentu. Znacznik czasu, taki jak 2025-09-24T00:30:00+02:00, zawiera godzinę i liczbową różnicę czasu względem UTC, dzięki czemu wskazuje konkretny moment. RFC 3339 definiuje odpowiadającą im składnię pełnej daty i daty z godziną. RFC 3339: Data i godzina w Internecie: znaczniki czasu.

Różnica czasu, taka jak +02:00, opisuje relację względem UTC. Nazwana strefa, taka jak Europe/Paris, określa zasady przeliczania momentów na czas lokalny i odwrotnie; właściwa dla niej różnica czasu może się zmieniać. RFC 9557 rozróżnia te pojęcia i wyjaśnia, dlaczego sama różnica czasu nie dostarcza zasad potrzebnych do lokalnych obliczeń kalendarzowych. RFC 9557: Znaczniki czasu z dodatkowymi informacjami.

W tym arkuszu wpisz bezpośrednio zamierzone daty publikacji. Jeśli źródło zawiera znaczniki czasu, najpierw zdecyduj, która nazwana strefa określa dzień publikacji, a następnie przelicz oba znaczniki na daty w tej strefie. Dla przykładu 2025-09-24T00:30:00+02:00 oznacza ten sam moment co 2025-09-23T22:30:00Z; wybranie wyświetlanej daty przed wskazaniem strefy odniesienia może zmienić dane wejściowe o jeden dzień.

Utwórz arkusz różnicy dat w Numbers

Potrzebujesz aplikacji Numbers na Macu oraz tabeli z kolumnami od A do J i co najmniej dwoma wierszami. W wierszu 1 umieść etykiety, a w wierszu 2 obliczenia. Poniższe formuły używają angielskich nazw funkcji i przecinków jako separatorów.

Aby wprowadzić formułę, zaznacz komórkę docelową, wpisz lub wklej formułę rozpoczynającą się od = i naciśnij Return. Apple informuje, że wpisanie znaku równości otwiera Edytor formuł, a pomoc dotycząca funkcji jest dostępna w Przeglądarce funkcji. Obliczanie wartości przy użyciu danych z komórek tabeli w aplikacji Numbers na Macu.

Wprowadź jednoznaczne daty początkową i końcową

Oznacz A1 jako Data początkowa, a B1 jako Data końcowa. Wprowadź następujące przykładowe daty publikacji:

Komórka Formuła Zamierzona data
A2 =DATE(2022,5,18) 18 maja 2022 r.
B2 =DATE(2025,9,24) 24 września 2025 r.

Użycie DATE(year,month,day) pozwala uniknąć niejednoznaczności wynikającej z regionalnych interpretacji ciągów dat. Apple zaleca tę funkcję, aby zapewnić spójną interpretację dat niezależnie od ustawień regionalnych. Podaj prawidłowe daty kalendarzowe, w tym właściwą liczbę dni w każdym miesiącu. DATE.

Zanim przejdziesz dalej, sprawdź, czy data końcowa jest taka sama jak początkowa lub późniejsza. Ten arkusz celowo oblicza różnicę w przód; nie definiuje ujemnych okresów kalendarzowych.

Znajdź ostatnią datę bazową przed datą końcową

Wprowadź w wierszu 2 kolejno poniższe etykiety i formuły:

Komórka Etykieta w wierszu 1 Formuła w wierszu 2
C2 Kandydacka liczba miesięcy =(YEAR(B2)-YEAR(A2))*12+MONTH(B2)-MONTH(A2)
D2 Pełne miesiące =C2-IF(DATE(YEAR(B2),MONTH(B2),MIN(DAY(A2),DAY(EOMONTH(B2,0))))>B2,1,0)
E2 Początek miesiąca bazowego =EDATE(DATE(YEAR(A2),MONTH(A2),1),D2)
F2 Data bazowa =DATE(YEAR(E2),MONTH(E2),MIN(DAY(A2),DAY(EOMONTH(E2,0))))

Pierwsza formuła oblicza odległość między pozycjami roku i miesiąca obu dat. Funkcje Apple YEAR i MONTH wyodrębniają te składniki z wartości dat. YEAR, MONTH.

Druga formuła sprawdza datę bazową w miesiącu końcowym. Jej dzień to mniejsza z dwóch wartości: dnia początkowego i ostatniego dnia tego miesiąca. Jeśli ta data przypada po dacie końcowej, formuła odejmuje jeden miesiąc. Ta warunkowa korekta wykorzystuje udokumentowane działanie funkcji IF. IF.

Pozostałe formuły tworzą właściwą datę bazową. EDATE przesuwa pierwszy dzień miesiąca początkowego o obliczone przesunięcie, unikając w ten sposób nieprawidłowego dnia na tym etapie pośrednim. EDATE.

Następnie arkusz jawnie stosuje zasadę końca miesiąca: DAY wyodrębnia numer dnia, EOMONTH podaje ostatnią datę miesiąca docelowego, a MIN wybiera mniejszy numer dnia. Dzięki temu sposób postępowania z krótszymi miesiącami jest widoczny w formule. DAY, EOMONTH, MIN.

Wyraź wynik w latach, miesiącach i dniach

Uzupełnij arkusz poniższymi formułami:

Komórka Etykieta w wierszu 1 Formuła w wierszu 2
G2 Lata =QUOTIENT(D2,12)
H2 Miesiące =MOD(D2,12)
I2 Dni =DATEDIF(F2,B2,"D")
J2 Różnica kalendarzowa =G2&" years, "&H2&" months, "&I2&" days"

QUOTIENT podaje wynik dzielenia całkowitego, a MOD resztę, przekształcając liczbę pełnych miesięcy na lata i pozostałe miesiące. QUOTIENT, MOD.

Dla przykładowych dat D2 powinno wynosić 40, a F2 powinno wskazywać 18 września 2025 r. Sześć dni między tą datą bazową a 24 września daje wynik: 3 lata, 4 miesiące, 6 dni. Formuła tekstowa używa stałych etykiet w liczbie mnogiej dla uproszczenia; osobne kolumny liczbowe pozostają dostępne do innych obliczeń.

Sprawdź końce miesięcy i lata przestępne

Użyj poniższych przykładowych par dat, aby sprawdzić przyjętą w arkuszu konwencję. Zastąp tylko formuły w A2 i B2, zachowując pozostałe formuły:

Data początkowa Data końcowa Oczekiwane lata, miesiące, dni Data bazowa
18 maja 2022 r. 24 września 2025 r. 3, 4, 6 18 września 2025 r.
31 stycznia 2025 r. 28 lutego 2025 r. 0, 1, 0 28 lutego 2025 r.
31 stycznia 2024 r. 29 lutego 2024 r. 0, 1, 0 29 lutego 2024 r.
29 lutego 2024 r. 28 lutego 2025 r. 1, 0, 0 28 lutego 2025 r.
31 stycznia 2025 r. 30 marca 2025 r. 0, 1, 30 28 lutego 2025 r.
24 września 2025 r. 24 września 2025 r. 0, 0, 0 24 września 2025 r.

To przykładowe obliczenia według podanej zasady. Podstawowy algorytm wyznaczania daty bazowej sprawdzono za pomocą deterministycznego obliczenia w Pythonie, obejmującego 10 000 wygenerowanych par dat; interfejsu Numbers nie uruchomiono.

Sprawdź wynik, odtwarzając przebieg obliczenia: weź pierwotną datę początkową, przesuń ją o łączną liczbę miesięcy z D2, stosując podaną zasadę końca miesiąca, a następnie dodaj liczbę dni z I2. Powinieneś otrzymać datę końcową. Zawsze obliczaj datę bazową miesiąca na podstawie pierwotnej daty początkowej: wielokrotne przesuwanie o jeden miesiąc może spowodować utratę pierwotnego numeru dnia po lutym.

Dlaczego nie połączyć trzech wyników DATEDIF?

Apple dokumentuje opcje DATEDIF służące do obliczania lat, miesięcy z pominięciem lat oraz dni z pominięciem miesięcy i lat. Opcja \"MD\" stosuje określony sposób obliczania numeru dnia, uwzględniający zastępowanie miesięcy. Dlatego nie należy zakładać, że oznacza liczbę dni pozostałych po zastosowaniu wybranej zasady końca miesiąca. Ten arkusz używa \"D\" wyłącznie między jawną datą bazową a datą końcową. DATEDIF.

Jak to działanie odwzorować na interfejs dat

W przypadku oprogramowania wykonującego to zadanie TC39 opisuje typ przeznaczony wyłącznie do dat kalendarzowych, Temporal.PlainDate, oraz operację obliczania różnicy uwzględniającą kalendarz. Żądanie until z largestUnit: 'year' zwraca czas trwania wyrażony w latach i mniejszych jednostkach; pozostawienie opcji domyślnych daje różnicę wyrażoną w dniach. Dokumentacja opisuje także dodawanie miesięcy z ograniczeniem do poprawnej daty i odrzucanie różnic między datami z różnymi systemami kalendarzowymi, chyba że zostaną one przekonwertowane do wspólnego kalendarza. Dokumentacja Temporal.PlainDate.

Te wybory dotyczące interfejsu potwierdzają kluczowe decyzje w arkuszu: określenie danych wejściowych jako samych dat, wybór kalendarza, wskazanie największej jednostki i zachowanie daty bazowej w celu interpretacji miesięcy. Standardy ciągów dat opisują sposób zapisu; sam wybór zapisu nie określa zasady końca miesiąca stosowanej w danym zadaniu.

Wyjaśnij nieoczekiwane wyniki, zanim użyjesz obliczeń

Jeśli formuła zwróci błąd, zaznacz wskaźnik błędu, aby odczytać komunikat; podręcznik Numbers firmy Apple opisuje ten krok diagnostyczny. Sprawdź odwołania do komórek i użyj Przeglądarki funkcji, aby wstawić argumenty, jeśli Twoja wersja aplikacji wymaga innych separatorów formuł. Obliczanie wartości przy użyciu danych z komórek tabeli w aplikacji Numbers na Macu.

Jeśli obliczenie wydaje się prawdopodobne, ale różni się od wyniku z innego narzędzia, porównaj zastosowaną w nim zasadę końca miesiąca z zasadą w tym arkuszu. Sprawdź też, czy inne narzędzie nie wlicza obu dat granicznych, nie używa znaczników czasu zamiast dat kalendarzowych ani nie zaokrągla wyniku. Nie uwzględniaj w tym obliczeniu wykonywanym w przód odwróconych dat ani pustych danych wejściowych; nie zastępuj błędów zerem.

Aby wielokrotnie porównywać daty publikacji, zachowaj datę początkową, końcową i bazową obok końcowego opisu. Dzięki temu wynik, taki jak „3 lata, 4 miesiące, 6 dni”, można prześledzić do konkretnego obliczenia kalendarzowego.

Źródła