datums voor 1900

Status
Niet open voor verdere reacties.

cow18

Terugkerende gebruiker
Lid geworden
24 mei 2008
Berichten
4.513
Besturingssysteem
Windows
Office versie
Excel365
CSS:
Sub Voor1900()
     dat1 = "16/06/1024"                     '1.000 jaar geleden !!!
     dat2 = "31/12/1024"
     d1 = CDate(dat1)
     d2 = CDate(dat2)
     MsgBox d2 - d1 & " dagen" & vbLf & DateSerial(2024, 12, 31) - DateSerial(2024, 6, 16) & " dagen"
End Sub
Schop ik nu een open deur in of zit er toch nog wat haken en oren aan die CDate voor 1900 ?
Ik dacht altijd dat excel dit niet kon ! (Even apart van die tussentijdse sprongetjes die er gemaakt werden).
Vervolgens dacht ik, zou je op zijn amerikaans maand en dag moeten omdraaien, maar blijkbaar niet.
Weet iemand hier meer over die CDate voor 1900 ?
 
Je laat een formule zien, maar niet de uitkomst. Wat zegt de msgbox (of als je de string in een Inputbox zet)?
Daarnaast heeft Excel dan wel de beperking van datums na 1900, maar Access bijvoorbeeld niet. Daar kan ik deze berekeningen gewoon maken. Dus wellicht dat VBA ook oudere datums aan kan. En dan is er niks bijzonders aan de hand.
 
DateSerial(2024, 6, 16) - DateSerial(1024, 6, 16) -> 365243, dan mis ik toch een paar schrikkeldagen. Maar wat is het praktisch nut van deze berekening?
 
Vanwege de invoering van de Gregoriaanse kalender in 1582 kunnen de weekdagen niet kloppen.
Er werden toen ineens 10 dagen dagen overgeslagen, zodat de kalenderequinox weer overeenkwam met de fysieke equinox.
Een datum vóór 24 februari 1582 is daardoor 10 dagen minder lang geleden dan uit het rekenkundige verschil blijkt.
MS had er verstandiger aan gedaan de invoering van de Gregoriaanse kalender als jaar 0, dag 1 te beschouwen.
 
DateSerial(2024, 6, 16) - DateSerial(1024, 6, 16)
Dat staat er niet; in de formule staat twee keer 2024 als jaar. En overigens andere datums.
 
@snb: een opmerking die weinig met de vraag te maken heeft. Het gaat er toch om, wat TS betreft, of je met CDate oudere datums dan 1-1-1900 kan gebruiken? In die context bepaald niet boeiend of je dan 10 dagen kwijtraakt of niet….
 
@OctaFish
Heel scherp opgemerkt hoor, maar laat ik dat nou helemaal expres zo hebben gedaan. Ik was benieuwd of iemand het verschil kon verklaren.
 
@ahhulpje: waarom maak je daar dan niet een eigen vraag voor? Dat heeft toch niets met de vraag van TS te maken? Geef daar eerst antwoord op, zou ik zeggen :).
 
@AHulpje, als je wiki er op naslaat, dan is 1 jaar (en dan moet je die goed definieren) 365,2421875 dagen, waarbij elk jaar die een veelvoud van 4, maar geen veelvoud van 100 behalve een veelvoud van 400, een schrikkeljaar. Bon, dan zijn er volgens mij geen schrikkeldagen te kort.

@snb, ik zit anders ook op een franse Excelsite en daar is het, zo te horen, eigenlijk nog iets leuker en is je "24/2/1582" blijkbaar ook geen constante als je Frankrijk op zijn geheel of er Zwitserland ook bij pakt. 't Was te zien hoe ver de invloed van Rome reikte. En dan had je nog die "Republikeinse Kalender". (PS. ik ben geen specialist ter zake, don't shoot the pianist).

@all, de vraag kwam daar om de leeftijd van iemand berekenen voor genealogie, dus dan was er iemand op ogenblik 1 gedoopt en was hij/zij ergens getuige (ander doopsel, huwelijk, overlijden, nog iets anders) op ogenblik 2. (toen leefden ze ook zo lang niet, dus dat interval is grosso modo 20 à 60 (???) jaar).
Bon, wil je dat doen op je werkblad, dan tel je bij het jaartal van je oorspronkelijke datum 400 (voor datums >=1500) of 800 (voor datums>=1100) of ... jaar en dan ben je vertrokken. Wist ik eigenlijk veel, dat als je die berekening gewoon in een functie van VBA deed, dat je daar allemaal van verlost bent ... . (ten minste voor jaren van 01/01/0100)

In ieder geval ben ik met bovenstaande geholpen en ga ik goed slapen vannacht ...

.
 
Zo zie je maar weer hoe belangrijk het is om bij een vraag het na te streven doel en de reikwijdte van dat doel te vermelden....;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan