| |
|
|
Torben Nissen | Dieses kleine Programa berechnet, como alt uno en Jahren es.
'Ein kleines Ejemplo, cómo hacerlo Alter en Jahren berechnen kann (de Profano X2).
'de Torben Nissen
'16.04.2015
Declarar aktuellesjahr!,aktuellermonat!,aktuellertag!
Declarar geburtsdatum$,geburtsdatum!,geburtsjahr!,geburtsmonat!,geburtstag!
Declarar alter!,alter$
aktuellesjahr!=@dt("getYear", !now)
aktuellermonat!=@dt("getMonth", !now)
aktuellertag!=@dt("getDay", !now)
geburtsdatum$="17.01.2000"
geburtsdatum!=@dt("setDate", geburtsdatum$)
geburtsjahr!=@dt("getYear", geburtsdatum!)
geburtsmonat!=@dt("getMonth", geburtsdatum!)
geburtstag!=@dt("getDay", geburtsdatum!)
Conjunto("Decimals",0)
If (aktuellertag! < geburtstag!) And (aktuellermonat! = geburtsmonat!)
alter! = aktuellesjahr! - geburtsjahr! - 1
ElseIf (aktuellertag! > geburtstag!) And (aktuellermonat! = geburtsmonat!)
alter! = aktuellesjahr! - geburtsjahr!
ElseIf (aktuellertag! = geburtstag!) And (aktuellermonat! = geburtsmonat!)
alter! = aktuellesjahr! - geburtsjahr!
EndIf
If aktuellermonat! < geburtsmonat!
alter! = aktuellesjahr! - geburtsjahr! - 1
ElseIf aktuellermonat! > geburtsmonat!
alter! = aktuellesjahr! - geburtsjahr!
EndIf
alter$=alter!
cls
Imprimir "Alter: "+alter$
WaitInput
End
|
|
|
| |
|
|
|
HofK | Kann uno auch en XProfan el largo Auswahl ersparen?
In mi Scopeland-Projekt (Base SQL) podría Yo knifflige Características por VB Skript einbetten. Daher el Ver código fuente Alter al aktuellen Tag y Bestimmung si minder- oder volljährig a diesem Tag. Das Datumsformat es offensichtlich JJJJ.MM.TT
Wenn Yo a el Punto bin, schaue Yo veces, como en InfinityProfan aussieht.
Der "Trick" steckt en el Addition des numerischen Ergebnisses des Vergleichs (datMT < gebMT) + ... Je después de Lingua muss uno also genauer schauen qué como passiert y eventuell todavía explizite Wandlungen vornehmen.
Alter al aktuellen Tag
function alter(geb)
Dim dat, datJ, datMT, gebJ, gebMT
dat = DBToday
If Len(geb)>0 Then
datJ = Left(dat,4)
gebJ = Left(geb,4)
datMT = Mid(dat,6,5)
gebMT = Mid(geb,6,5)
alter = (datMT < gebMT)+(datJ-gebJ)
End If
end function
Minder/Volljährig
function mv(geb)
Dim dat, datJ, datMT, gebJ, gebMT, alter
dat = DBToday
If Len(geb)>0 Then
datJ = Left(dat,4)
gebJ = Left(geb,4)
datMT = Mid(dat,6,5)
gebMT = Mid(geb,6,5)
alter = (datMT < gebMT)+(datJ-gebJ)
If alter < 18 Then
mv = "m"
Más
mv = "v"
End If
End If
end function
|
|
|
| |
|
|
|
Jörg Sellmeyer | El Datumsfunktionen son algo umständlich y kryptisch aber geben muy viel Nützliches her. Gerade en Datumsvergleichen, puede ser se el Aufdröseln en Tag, Monat, Jahr sparen.
Hier una Altersermittlung, el sagt, si Todavía Geburtstag habe, ya hatte oder heute habe:
Selección aleatoria
Var Geburtstag$ = Entrada$("Bitte Geburtsdatum eingeben","Mein Alter",Dt("GetDate",0,!Now - Rnd(20000)))
Var s$ = Left$(Geburtstag$,6) + Str$(DT("getYear",!Now))'hier ersetze Yo simplemente el Jahreszahl des Geburtsjahres por el aktuelle Jahreszahl
Var n% = Dt("CompareDate",!Now,Dt("SetDate",s$))
'laut Ayuda debería SetDate el eigentlich automáticamente hacer, el funktioniert aber anscheinend no.
Var Alter% = Abs(DT("GetYear",!Now) - DT("GetYear",Dt("SetDate",Geburtstag$)))
Select n%
CaseOf 1
imprimir "Du bist al " + Left$(Geburtstag$,6) + Str$(DT("getYear",!Now)) + " " + Str$(Alter%) + " geworden."
CaseOf 0
Imprimir "Herzlichen Glückwunsch para " + Str$(Alter%) + ". Geburtstag!"
CaseOf -1
imprimir "Du wirst al " + Left$(Geburtstag$,6) + Str$(DT("getYear",!Now)) + " " + Str$(Alter%)
EndSelect
Imprimir
WaitInput
Dazu hier el entsprechende Fehlermeldung: [...] |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 17.04.2015 ▲ |
|
|
|
|
HofK | Für XProfan 11.2 musste Yo, el "Trick" algo abändern, Minus...
volver -(datMT$ < gebMT$)+(datJ$-gebJ$)
Dann klappt's auch, Test con festem Datum "2015.04.15".
Apéndice: if len(geb$) > 0 war así sólo sinnvoll en Bezug des Geb.-Datums de el Datenbank, como el Feld auch leer ser podría.
imprimir alter("1978.07.21")
waitinput
proc alter
parámetros geb$
declarar dat$, datJ$, datMT$, gebJ$, gebMT$
dat$ = "2015.04.15"
datJ$ = left$(dat$,4)
gebJ$ = left$(geb$,4)
datMT$ = mid$(dat$,6,5)
gebMT$ = mid$(geb$,6,5)
// imprimir (datMT$ > gebMT$)
volver -(datMT$ > gebMT$)+(datJ$-gebJ$)
ENDPROC
|
|
|
| |
|
|
|
HofK | En InfinityProfan podría lo entonces veces así ähnlich ir:
|
|
|
| |
|
|
|
HofK | |
|
| |
|
|