Daty niemożliwe - wartości testowe

Daty, które nie istnieją, są niejednoznaczne albo zapisane inaczej, niż zakłada pole. 12 wartości, każda z tym, co psuje, i z tym, co zamiast tego robi poprawna aplikacja.

dates-impossible wersja 1.0, aktualizacja 2026-09-24 CC-BY-4.0

Wpisuj je po jednej skrótem AltShiftN w palecie albo weź wszystkie do skryptu poleceniem nkb emit dates-impossible.

30 lutego

dates-impossible/feb-30
30.02.2026 30.02.2026
  • 10 grafemów
  • 10 punktów kodowych
  • 10 bajtów
  • 10 jednostek UTF-16
Co psuje
Data, która nie może istnieć. Naiwne parsery przesuwają ją na drugiego marca, zamiast ją odrzucić.
Co robi poprawna aplikacja
Odrzucona z komunikatem - nigdy po cichu przeniesiona na inny dzień.

29 lutego w roku nieprzestępnym

dates-impossible/feb-29-non-leap
29.02.2026 29.02.2026
  • 10 grafemów
  • 10 punktów kodowych
  • 10 bajtów
  • 10 jednostek UTF-16
Co psuje
Poprawna w jednych latach, a w innych nie, więc te same dane są poprawne albo błędne zależnie od pola roku obok.
Co robi poprawna aplikacja
Odrzucona dla lat nieprzestępnych, z podaną przyczyną.

31 listopada

dates-impossible/nov-31
31.11.2026 31.11.2026
  • 10 grafemów
  • 10 punktów kodowych
  • 10 bajtów
  • 10 jednostek UTF-16
Co psuje
Sprawdzenie długości miesiąca, które pomija większość ręcznie pisanych walidatorów.
Co robi poprawna aplikacja
Odrzucona, a nie przeniesiona na grudzień.

Dzień i miesiąc w niejednoznacznej kolejności

dates-impossible/ambiguous-day-month
03/04/2026 03/04/2026
  • 10 grafemów
  • 10 punktów kodowych
  • 10 bajtów
  • 10 jednostek UTF-16
Co psuje
Ten sam tekst oznacza marzec albo kwiecień zależnie od konwencji, a nic na ekranie nie mówi, którą przyjęto.
Co robi poprawna aplikacja
Oczekiwana kolejność podana przy polu albo wymuszony jednoznaczny format.

Data ISO 8601

dates-impossible/iso-format
2026-09-06 2026-09-06
  • 10 grafemów
  • 10 punktów kodowych
  • 10 bajtów
  • 10 jednostek UTF-16
Co psuje
Pole oczekujące formatu lokalnego dostaje międzynarodowy i odwrotnie, a oba to prawidłowe dane od użytkownika.
Co robi poprawna aplikacja
Oba przyjęte albo jeden wymuszony z widocznym przykładem.

Rok 9999

dates-impossible/year-9999
31.12.9999 31.12.9999
  • 10 grafemów
  • 10 punktów kodowych
  • 10 bajtów
  • 10 jednostek UTF-16
Co psuje
Górna granica większości typów dat. Często przyjmuje go interfejs, a odrzuca baza.
Co robi poprawna aplikacja
Ten sam zakres wymuszony po obu stronach.

Rok 0000

dates-impossible/year-0000
01.01.0000 01.01.0000
  • 10 grafemów
  • 10 punktów kodowych
  • 10 bajtów
  • 10 jednostek UTF-16
Co psuje
Poniżej zakresu kilku typów dat, a roku zerowego w powszechnym kalendarzu nie ma.
Co robi poprawna aplikacja
Odrzucony z podanym zakresem.

Rok pięciocyfrowy

dates-impossible/year-10000
01.01.10000 01.01.10000
  • 11 grafemów
  • 11 punktów kodowych
  • 11 bajtów
  • 11 jednostek UTF-16
Co psuje
Lata pięciocyfrowe psują parsowanie o stałej szerokości i formaty kolumn, nie dając oczywistego błędu.
Co robi poprawna aplikacja
Odrzucony z podanym zakresem.

Epoka Uniksa

dates-impossible/epoch-zero
01.01.1970 01.01.1970
  • 10 grafemów
  • 10 punktów kodowych
  • 10 bajtów
  • 10 jednostek UTF-16
Co psuje
Punkt zerowy najczęstszego zapisu znaczników czasu. Często nie da się go odróżnić od „daty nieustawionej”.
Co robi poprawna aplikacja
Zapisana i wyświetlana jako prawdziwa data, odróżnialna od pustego pola.

Ujemny znacznik czasu

dates-impossible/negative-timestamp
-1 -1
  • 2 grafemy
  • 2 punkty kodowe
  • 2 bajty
  • 2 jednostki UTF-16
Co psuje
Daty sprzed epoki są w wielu zapisach ujemne i bywają po cichu odrzucane albo przekręcane.
Co robi poprawna aplikacja
Obsłużony jak zwykła data z przeszłości albo odrzucony z podanym obsługiwanym zakresem.

Data słownie

dates-impossible/date-in-words
tomorrow tomorrow
  • 8 grafemów
  • 8 punktów kodowych
  • 8 bajtów
  • 8 jednostek UTF-16
Co psuje
Tekst w polu daty: przyjmują go pobłażliwe parsery, które potem każdego dnia dają inną datę.
Co robi poprawna aplikacja
Odrzucona - daty w języku naturalnym to zadanie dla świadomie zaprojektowanej funkcji, nie dla pobłażliwości parsera.

Ukośniki zamiast kropek

dates-impossible/dots-vs-slashes
06/09/2026 06/09/2026
  • 10 grafemów
  • 10 punktów kodowych
  • 10 bajtów
  • 10 jednostek UTF-16
Co psuje
Ta sama data z innym separatorem. Formularze często przyjmują jeden, a zapisują drugi, nic o tym nie mówiąc.
Co robi poprawna aplikacja
Oba zapisy przyjęte, znormalizowane raz i pokazywane w jednej spójnej postaci.