Lebenszeit in Sekunden herausfinden

Anfängerfragen zum Programmieren mit PureBasic.
JohnMC
Beiträge: 85
Registriert: 06.01.2006 17:04
Wohnort: http://www.j-soft.de.ms
Kontaktdaten:

Lebenszeit in Sekunden herausfinden

Beitrag von JohnMC »

Hoi Leute!

Ich hab mit meinen Kumpel gewettet, dass ich bis morgen ein Programm geschreiben hab, das die Zeit eines beliebigen Tages (zB sein Geb.Datum) bis jetzt in Sekunden ausrechnen kann.

Ich hab mir überlegt, dass ich einfach die Sekunden von diesem Tag in Sekunden ausrechne, und dann die Zeit seit dem Jahresanfang bis einen Tag vorher. Dann noch die übrigen Jahre in Sekunden und alles wird zusammen gezählt.

Das Problem ist, dass es da ja noch die Schaltjahre und den Februar mit seinen 28 Tagen gibt... /:->

Habt ihr ne Idee, wie ich das ausrechnen könnte?
Oder hat jemand sowas schion mal programmiert??

Grüße...JohnMC
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

schau dir mal die Date-lib von PB an....

das normale datums-format wird in millisekunden (oder sekunden?) berechnet,
und muss in formatierungsfunktionen übergeben werden, um normal nach tag/monat auszusehen...

also, eigentlich sollten dir die grundfunktionen alles geben, was du brauchst, schau man in der Help von PB unter Date... ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

1. Ereignisse der Vergangenheit

Die Wette verlierst du, es sei denn du kennst die aktuelle - natürlich sekundengenaue - Geburtszeit deines Kumpels.

Ja, ja - der Schein der Genauigkeit :mrgreen:

2. Ereignisse in der Zukunft

Im Prinzip das gleiche, obwohl man vereinfacht annehmen könnte Tag X beginnt mit 00:00:00. Allerdings kleines Problem: Begrenzung des Datentyps.

Longs bei 2^31 => ca. 68 Jahre Begrenzung.

Damit ließe sich wohl nicht die Frage beantworten, wieviel Sekunden seit Beginn des ersten Weltkrieges bis zum 04.05.2043 vergangen sind. Das gilt entsprechend für 1.


Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
JohnMC
Beiträge: 85
Registriert: 06.01.2006 17:04
Wohnort: http://www.j-soft.de.ms
Kontaktdaten:

Beitrag von JohnMC »

@ Kaeru Gaman:
Thx, damit hab ichs hingekriegt! :allright:

@Karl:
Wir gehen davon aus, dass er um 00:00:00 Uhr geboren ist, das haben wir auch in der Wette ausgemacht, weil er seine genauen Geburtszeiten auch nicht weis...und er ist noch nicht ganz 68....heute ist er 14 geworden :wink:

Ich zeig euch mal den Code wenn mein Notebokk wieder meinen USB-Stick annimt, des stresst grad voll rum...!!

Grüße...JohnMC
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

@ Kaeru: Verwirr den armen Jungen nicht so, die Date-Lib rechnet nur in ganzen Sekunden. Wüsste man, wenn man öfter damit arbeiten würde :wink:

Ich würde aus dem Stehgreif mal behaupten, ich wäre

Code: Alles auswählen

Debug Date(1988, 10, 27, 10, 30, 0)-Date()
Sekunden alt, wenn ich am 27. 10. 1988 um ca. 10:30 geboren bin. (Hoffe, ich habe im Code keinen Denkfehler eingebaut...)

So einfach kann's gehen, JohnMC. :allright:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

der denkfehler besteht nur darin, dass du gerade stirbst und in Abs(x) sekunden geboren wirst ..also nur noch die subtrahenden vertauschen.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Huch, ja stimmt! Daran habe ich nicht gedacht.

Ich sterbe? Ja, ich fühl mich auch ganz schön tot, nach 9 Schulstunden, davon die letzten beiden Schweißtreibenden Sport... :coderselixir:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Andreas
ToolbarKönig
Beiträge: 142
Registriert: 08.09.2004 08:33

Beitrag von Andreas »

So einfach kann's gehen, JohnMC. :allright:
So einfach ist das dann doch nicht, denn danach bin erst 3 Jahre alt.
Die Date-Lib funktioniert erst ab 1970.
Für einen gescheiten Sekunden-Rechner nicht gerade tauglich :cry:
Gruss Andreas
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

Code: Alles auswählen

Debug FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", 0)
Man beachte!
Daten vor dem 1. Januar 1970 sind mit den PB-Datumsfunktionen nicht zu berechnen!

Code: Alles auswählen

Debug FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", 31*24*60*60)
Ein Monat später ist der 1. Februar 1970!
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Andreas
ToolbarKönig
Beiträge: 142
Registriert: 08.09.2004 08:33

Re: Lebenszeit in Sekunden herausfinden

Beitrag von Andreas »

JohnMC hat geschrieben: Ich hab mit meinen Kumpel gewettet, dass ich bis morgen ein Programm geschreiben hab, das die Zeit eines beliebigen Tages (zB sein Geb.Datum) bis jetzt in Sekunden ausrechnen kann.
Ich schätze die Wette ist verloren.
Da sind nicht nur die Schaltjahre ( die allerdings kein Problem sind, siehe Code ), da war auch noch Papst Gregor, der hat im Jahr 1582 einfach mal die 10 Tage zwischen dem 4. und 15. Oktober ausfallen lassen.
Das ganze Thema ist also etwas komplexer.
Und da Du ja von einem beliebigen Tag gesprochen hast....

Code: Alles auswählen

Procedure.w IsLeapyear(Jahr.w)
    ;Schaltjahr bestimmen
    ;Rueckgabe = 1 wenn Schaltjahr, sonst Null
    Result.w =0
    If (MOD(Jahr,4)=0 And MOD(Jahr,100)<>0) Or (MOD(Jahr,400)=0)
        Result = 1
    EndIf
    ProcedureReturn Result
EndProcedure
Gruss Andreas
Antworten