En dato er ikke så lett å ha med å gjøre, ettersom den ikke er et enkelt tall - men heller et objekt bestående av flere tall. På grunn av dette kan man ikke bare ta 05.06.2007 + 1 hvis man skal øke datoen til 06.06.2007. Årsaken til dette er at 1-tallet ikke er definert som dag, måned eller år. Skal man øke med en dag, må man bruke script. Dette kommer jeg tilbake til lengre nede.
Oppbygning
En dato er bygd opp slik: DD.MM.ÅÅÅÅ.
Hvis man skal regne på dager må man bryte opp i sine bestanddeler. Dette kan man gjøre med funksjonene:
getday(datovariabel)
getmonth(datovariabel)
getyear(datovariabel)
Skal man for eksempel hente ut dagen fra en dato og gjøre den om til et enkelt tall man kan bruke i andre formler, kan man benytte getday(datovariabel). Hvis datovariabel=11.12.2013 vil resultatet bli 11. Her bruker man den funksjonen som er mest hensiktsmessig i forhold til hvilken oppgave man ønsker å løse.
Differanse mellom to datoer
Dersom man har to datoer og ønsker å finne ut hvor mange dager, måneder og år det er mellom disse datoene kan man gjøre dette svært enkelt ved å ta =datovariabelTil-datovariabelFra.
La oss si at til-dato er 20.06.2015 og fra-dato er 30.06.2013. Resultatet vil bli noe HELT annet enn du skulle forvente: 22.12.3001
Dette betyr at du har fått en relativ dato. Dersom du bruker getday/getmonth/getyar på denne variabelen vil du hente ut differansen mellom datoene. getyear vil altså returnere 1, altså ett år. hvis man får en relativ dato på 2999 vil getyear returnere -1 .
Legge til eller trekker fra datoer
Dersom du ønsker å legge til eller trekke fra dager, måneder eller år kan man benytte en funksjon som bygger opp en datovariabel: date(ÅÅÅÅ, MM, DD).
Skal du legge til 7 dager til en dato trenger du altså bare å bruke koden =dato+date(0,0,7)
Hvis dato=30.08.2019 vil resultatet her bli 06.09.2019.
Dagen idag
Ofte behøver vi å vite dagens dato. Det kan vi gjøre ved å benytte funksjonen =now()
Da returneres datoen skjemaet fylles ut. Hva kan dette brukes til?
Søknadsfrister, aldersgrenser, osv.
La oss si du ønsker å se om utfylleren har fylt 18 år. I feltet for fødselsdatoen har vedkommende lagt inn 14.11.2001. Her kan man legge koden inn i valideringsskriptet:
=if(fodselsdato+date(18,0,0)>now()){return “Du er ikke gammel nok til å søke”}; else {return true};
Datoer er med andre ord ikke rett frem. Håper denne korte beskrivelsen er nyttig. Bruk kommentarfeltet nedenfor hvis noe er uklart.