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.
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.