De datum terugrekenen uit het dagnummer
Elke dag heeft een volgnummer in een maand: 1 januari, 2 januari, 3 januari, enzovoort tot en met 31 december. Voor sommige toepassingen is het handig om het volgnummer van een dag in een jaar te weten. Dan is 1 januari is dag 1, 2 januari is dag 2, enzovoort. Als je op deze manier telt, valt 31 januari op dag 31; 1 februari is dan dag 32. 28 februari is dag 59. 1 maart is dan dag 60, of dag 61 als het een schrikkeljaar is.
Op deze pagina presenteer ik een scriptje dat de datum terug rekent uit het dagnummer in een jaar. De code van het
voorbeeld kun je downloaden om zelf te gebruiken.
De werking van het script wordt hieronder besproken.
- Het script staat in de file dagnummer2.js Die hoef je niet te veranderen om hem te gebruiken.
- Het rekenwerk wordt gedaan door de function datumUitDagnummer(nummer, jaar).
- De parameter nummer is een getal,
1 ≤ nummer ≤ 365
(of366
als het een schrikkeljaar betreft). - De parameter jaar is optioneel. Je mag hem dus weglaten. Als je dat doet wordt de datum berekend in het huidige jaar.
- De function geeft een datumvariabele terug; deze bevat de berekende datum.
  - De function datumUitDagnummer() kijkt eerst of het jaar is gegeven. Zo niet, dan wordt het jaartal uit de systeemdatum gebruikt.
- Het script bevat een lijst met het aantal dagen in een jaar. Het kijkt eerst of het opgegeven jaar een schrikkeljaar is. Als dat zo is wordt het aantal dagen in februari met één verhoogd.
- De function datumUitDagnummer() kijkt nu of nummer een geldig getal is. Als dat niet zo is wordt
null
terug gegeven. - Daarna wordt nummer vergeleken met het aantal dagen in januari. Als nummer groter is dan dat getal, wordt
het van nummer afgetrokken en wordt gekeken naar februari, daarna naar maart, enz.
Op deze manier worden een datum en een maand gevonden. Deze worden samen met het bekende jaar in een datumvariabele gezet en geretourneerd.
Opmerking: De gebruikelijke manier om op null
te testen is:
var a = datumUitDagnummer(789); // Dit is een foute aanroep
if (!a) {
/* Handel hier de fout af */
} else {
/* Handel hier de correcte datum af */
}
Gebruik:
- De code staat in de <HEAD>.
- In het document kun je de function datumUitDagnummer(nummer, jaar) aanroepen, zoals hierboven is beschreven.
De code van het voorbeeld ziet er als volgt uit:
(Zet dit in de <HEAD>).
<script src="dagnummer2.js"></script>
In dit voorbeeld is gebruikt (afgezien van de opmaak):
<p id="toen"></p>
<script>
document.getElementById('toen').innerHTML = "Dagnummer 174 in 2015 komt overeen met:<br>" + datumUitDagnummer(174, 2015) + ""."
</script>
Downloaden:
Druk op de knop:
File: voorb413.zip, 982 bytes.
Opmerking:
De andere kant op rekenen kan natuurlijk ook. Zie Het dagnummer in een jaar berekenen.