Zużywasz zaledwie 24 bajty, które możesz umieścić nawet we Flashu przy pomocy instrukcji PROGMEM.
A myślisz, że Wasze kody bez tablic kompilator skompiluje optymalnie? Gdzieś i tak musi te liczby przechowywać.
A namnożenie ifów czy sum logicznych też nie jest optymalnym rozwiązaniem.
------------------------ [ Dodano po: 3 minutach ]Mało tego, masz tylko 4 możliwości: 28, 29,30, 31 dni w miesiącu. Co daje zaledwie 2 bity na miesiąc, żeby je zakodować - 0,1,2,3 czyli 00, 01, 10, 11. Używając pól bitowych w jednym bajcie zmieścisz 4 miesiące. Przy odkodowywaniu stosujesz maskowanie na 2 bity i dodajesz stały offsett + 28. Rok to 3 bajty, dwie tablice - 6 bajtów, które na dodatek możesz ulokować we Flashu. Nadal twierdzisz, że to pamięciożerne rozwiązanie?
Nie podchodźcie do sprawy "na hama", szukajcie optymalnych rozwiązań i miłych dla oka, czytelnych i o dużym reusabilty (ktoś inny bierze funkcję z Waszego kodu i ją używa w swoim programie). Piszcie tak, aby jak nastąpi zmiana założeń, to nie zmieniać tego w stu miejscach, a w jednym, np. w tablicy.
A co, jeśli następnym razem nie będą to miesiące, a długość dnia w roku w każdym dniu? Będziecie sprawdzać 365 warunków? Przecież to bez sensu.