Jag har gjort en enkel mall i sträng-format som anger var de olika variablerna finns:
const char PROGMEM datumFormatMall[3][19] = {"---5--4--3--2--1--0", "-3--4----5--2--1--0", "-4--3----5--2--1--0"};
'-' = otillåten position (för markören)
siffra = anger vilken variabel det är frågan om. 0 = sekunder, 1 = minuter etc... 5 = år. Anger position för ENTALSSIFFRAN.
Jag har en generell gräns på 31 för datum - om man matar in datum 31 och sedan februari så justeras detta neråt om man sparar. (Annars , vad ska hända om du först anger "januari", sedan datum 31, backar till månad och flyttar till februari - ska datumet ändras då? Blir ju lika bökigt som i fallet DD/MM/ÅÅ).
Nu har jag ju en separat funktion för utskrift av datumet, men annars hade man kanske med fördel kunnat kombinera formatmallen ovan med en "utskriftsmall" för datum.... t.ex skulle den kunna se ut så här:
"---5--4--3--2--1--0" ändras till " 20.F-.E-.D .C:.B:.A" ---> "2013-06-09 18:58:15"
för inmatning tolkas de således:
bokstav : position för entalssiffran: A-F anger vilken data det är frågan om.
punkt: tiotals-siffrans position
övriga tecken: otillåten position för inmatning. För utskrift används detta tecken.
Men så har jag inte gjort nu.