ParseDate() vor 1970

Anfängerfragen zum Programmieren mit PureBasic.
Angelo
Beiträge: 102
Registriert: 20.02.2010 14:47
Wohnort: Berlin

ParseDate() vor 1970

Beitrag 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?
PB 5.50; Win 7
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ParseDate() vor 1970

Beitrag 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
Hygge
Benutzeravatar
Kurzer
Beiträge: 1614
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: ParseDate() vor 1970

Beitrag von Kurzer »

"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2023: 56 Jahre.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: ParseDate() vor 1970

Beitrag 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")
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ParseDate() vor 1970

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Angelo
Beiträge: 102
Registriert: 20.02.2010 14:47
Wohnort: Berlin

Re: ParseDate() vor 1970

Beitrag von Angelo »

Super! Vielen Dank für Eure Antworten - haben mir enorm weitergeholfen.
PB 5.50; Win 7
Antworten