Seite 1 von 1

ParseDate() vor 1970

Verfasst: 07.06.2017 12:25
von Angelo
Ich habe eine Geburtstagsliste und möchte aus den Geburtsdaten (z. B. 13.02.1954) das Lebensalter in Jahren zum aktuellen Zeitpunkt errechnen. Ich bin auf die ParseDate()-Funktion gestoßen,
die zwar funktioniert, wenn das Geburtsdatum nach dem 01.01.1970 liegt. Aber wie berechne ich bei Geburtsdaten vor 1970 das Lebensalter?

Re: ParseDate() vor 1970

Verfasst: 07.06.2017 12:51
von Kiffi
-> Date64 - Unixtime 64bit
; == Windows ==
; >> Minimum: 01.01. 1601 00:00:00
; >> Maximum: 31.12.30827 23:59:59

; == Linux ==
; 32-Bit:
; >> Minimum: 01.01.1902 00:00:00
; >> Maximum: 18.01.2038 23:59:59
; 64-Bit:
; >> Minimum: 01.01. 0000 00:00:00
; >> Maximum: 31.12.999999999 23:59:59

; == MacOS ==
; wie bei Linux?
Grüße ... Peter

Re: ParseDate() vor 1970

Verfasst: 07.06.2017 12:52
von Kurzer

Re: ParseDate() vor 1970

Verfasst: 07.06.2017 13:08
von NicTheQuick
Oder wenn es nur um die Aufgabe der Altersbestimmung geht, reicht auch ein bisschen Stringfield-Magic.

Code: Alles auswählen

Procedure.i alter(datum.s)
	Protected tag.i = Val(StringField(datum, 1, "."))
	Protected monat.i = Val(StringField(datum, 2, "."))
	Protected jahr.i = Val(StringField(datum, 3, "."))
	
	Protected alter.i = Year(Date()) - jahr
	
	If monat > Month(Date()) Or (monat = Month(Date()) And tag > Day(Date()))
		alter - 1
	EndIf
	
	ProcedureReturn alter
EndProcedure

Debug alter("7.6.1987")
Debug alter("1.5.1905")

Re: ParseDate() vor 1970

Verfasst: 07.06.2017 13:10
von RSBasic
Falls du in deiner Anwendung auch einen Kalender (CalendarGadget()) hast und du dort auch vor 1970 abfragen möchtest: http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb

Re: ParseDate() vor 1970

Verfasst: 07.06.2017 13:38
von Angelo
Super! Vielen Dank für Eure Antworten - haben mir enorm weitergeholfen.