Das OFFIZIELLE PROFAN SUPPORT FORUM
Einsteigerfragen
PROFAN-Programmierung
Helfer & Tools
Anregungen & Vorschläge
PROFAN-NEWS
Die Regeln!
2 - PROFAN-Programmierung

 Neues Thema  |  Zur Übersicht  |  Suchen  |  Einloggen   Vorherige Nachricht  |  Nächste Nachricht 
 Re: Datumsunterschied in Tagen berechnen
Autor: Michael Wodrich (---.customer.vsm.sh)
Datum:   16.03.18 16:44

Hier ging es mal um Tages-Umrechnungen.
Das ist hier drin verarbeitet.

 Cls
 ' Alter berechnen (Pi mal Daumen)
 ' Die Konstanten achten auch ein bisserl auf Schaltjahres-Gedöhns
 ' Startdatum, Endedatum
 ' Obwohl der XProfan-Zeitpunkt einen anderen Startwert hat (nicht Jahr 0 sondern 1900),
 ' ist die Differenz ähnlich und kann deshalb verwendet werden.
 ' Vorteil mit Zeitpunkt - der Wert ist genauer, wenn man auch Uhrzeiten angibt.
 
 Proc Age
 
     Parameters int T1,M1,J1, T2,M2,J2
     Declare int T3,M3,J3,  float f
     Var float cJ = 365.2425
     Var float cM = 30.4375
     f = (J2 * cJ) + (M2 * cM) + T2
     f = f - ((J1 * cJ) + (M1 * cM) + T1)'ergibt fast gleiche Differenz wie XProfan-Zeitpunkt
     J3 = Int(f / cJ) : f = f - (cJ * J3)
     M3 = Int(f / cM) : f = f - (cM * M3)
     T3 = Int(f + 0.5)
     Return J3' aus Faulheit wird nur Anzahl der Jahre geliefert
 
 EndProc
 
 ' xAge beachtet auch die Uhrzeiten (arbeitet mit Zeitpunkten; ab X2)
 Proc xAge
 
     Parameters float DatumAlt, DatumNeu
     Declare int T,M,J,  float f
     Var float cJ = 365.2425
     Var float cM = 30.4375
     f = DatumNeu - DatumAlt
     J = Int(f / cJ) : f = f - (cJ * J)
     M = Int(f / cM) : f = f - (cM * M)
     T = Int(f + 0.5)
     Return Format$("%u J, ",J) + Format$("%u M, ",M) + Format$("%u T",T)
 
 EndProc
 
 Print "\n Alter berechnen \n"
 Print " Age: "; Age(27,12,1961, 18,3,2016)
 Print "xAge: "; xAge( dt("SetDate", "27.12.1961"), dt("SetDate", "18.03.2016") )
 WaitInput
 
 ' ----------------------------------------------------
 def !J 365.2425
 def !M 30.436875
 declare alter!, int jahre,monate,tage
 
 alter! = dt("SetDate",1999,6,7) - dt("SetDate",1989,7,25)
 jahre  = int( alter! / !J ) : monate = int( (alter! mod !J) / !M ) : tage   = int( (alter! mod !J) mod !M )
 Print "  \:jahre;J, \:monate;M, \:tage;T  ---     Ergebnis: 9J, 10M, 12T"
 
 alter! = !now - dt("SetDate",1960,9,4)
 jahre  = int( alter! / !J ) : monate = int( (alter! mod !J) / !M ) : tage   = int( (alter! mod !J) mod !M )
 Print "  \:jahre;J, \:monate;M, \:tage;T"
 
 End
 
 


Gruß
Michael Wodrich

--
Programmieren, das spannendste Detektivspiel der Welt.
Programmierumgebung: | XProfan (neueste) | Win (neueste)


Nachricht bearbeitet (16.03.18 16:48)

 Beitrag beantworten  |  Foren-Liste  |  Alle Antworten   Neuerer Beitrag  |  Älteres Thema 

 Beiträge Autor  Datum
 Datumsunterschied in Tagen berechnen  Neu
Mathias Heinemann 25.01.18 14:22 
 Re: Datumsunterschied in Tagen berechnen  Neu
Heinz Brill 25.01.18 15:38 
 Re: Datumsunterschied in Tagen berechnen  Neu
Mathias Heinemann 26.01.18 12:37 
 Re: Datumsunterschied in Tagen berechnen  Neu
Jacob Liebeck 16.03.18 16:25 
 Re: Datumsunterschied in Tagen berechnen  Neu
p. specht 27.01.18 10:10 
 Re: Datumsunterschied in Tagen berechnen  Neu
Michael Wodrich 16.03.18 16:44 


 Foren-Liste  |  Zur Registrierung 
 Benutzerlogin
 Benutzername:
 Passwort:
 Login-Daten speichern:
   
 Passwort vergessen?
E-Mail-Adresse oder Username unten eingeben. Dann wird Dir per e-Mail ein neues Passwort zugeschickt.

phorum.org