Seite 1 von 3
Altersberechnung
Verfasst: 09.06.2005 16:44
von Alena
Hallo

Ich kenne mich leider in Basic nicht so aus, bräuchte aber ein Programm für die Altersberechnung (Suchfunktion hab ich schon benutzt!).
Das Programm sollte so gestaltet sein, dass es zuerst nach dem Alter fragt, und danach hinschreibt "du bist 2 jahre jünger bzw. älter".
Beispiel: Ich bin 19 und der Benutzer ist 16.
Gibt er nun ein, dass er 16 ist, sollte "du bist 3 jahre jünger" auf dem Bildschirm erscheinen.
Könnte mir das jemand machen, bzw. mir helfen? Wäre lieb!

Verfasst: 09.06.2005 16:49
von Green Snake
hallo
1. purebasic hat gar nichts mit basic zu tun, nur die syntax ist änhlich
falls du vb meinst, dan bist du hier im falschen forum
ps. programmcode in arbeit

Verfasst: 09.06.2005 16:59
von Kiffi
@Green Snake
> 1. purebasic hat gar nichts mit basic zu tun
@Alena:
Hier sind zwei Links, die sich mit einer ähnlichen Thematik befassen. Vielleicht bringt Dich das weiter:
http://forums.purebasic.com/german/viewtopic.php?t=3581
http://forums.purebasic.com/german/viewtopic.php?t=2906
Grüße ... Kiffi
Verfasst: 09.06.2005 17:02
von Green Snake
ich habe basic als visual basic interpretiert, falls er doch pb meinte, dann nichts für ungut

Verfasst: 09.06.2005 17:05
von zigapeda
ja ich würde dir folgendes empfehlen:
crossroads hat geschrieben:Code: Alles auswählen
Procedure.l PBDateDiff (modus$, Datum1$, Datum2$)
d1.l = ParseDate("%dd.%mm.%yyyy %hh:%ii:%ss", Datum1$)
d2.l = ParseDate("%dd.%mm.%yyyy %hh:%ii:%ss", Datum2$)
If d1 < 0 Or d2 < 0:ProcedureReturn -1:EndIf ; error!
diff.l = Abs(d2 - d1)
Select modus$
Case "s":ProcedureReturn diff ; seconds
Case "m":ProcedureReturn Int(diff / 60) ; minutes
Case "h":ProcedureReturn Int(diff / (60 * 60)) ; hours
Case "d":ProcedureReturn Int(diff / (60 * 60 * 24)) ; days
Case "w":ProcedureReturn Int(diff / (60 * 60 * 24 * 7)) ; weeks
Default:ProcedureReturn -1 ; error!
EndSelect
EndProcedure
Debug PBDateDiff ("d","10.04.2005 00:00:00", "17.04.2005 00:00:00")
wie schon oben steht, das hat crossroads geschrieben ist also nicht von mir.
den code fügst du oben in dein programm ein und wenn du dann z.B.
PBDateDiff("d","17.09.1973 00:00:00","69.09.1995 00:00:00") eingibst, dann rechnet die procedure den unterschied in tagen aus
Verfasst: 09.06.2005 17:09
von bobobo
Konsoliger wird's hiermit.
Code: Alles auswählen
OpenConsole()
MeinAlter=19
Repeat
ClearConsole()
Print("Gib Dein Alter ein (-1 zum Beenden) :")
UserAlter=Val(Input())
If UserAlter=-1
CloseConsole()
End
EndIf
Ergebnis=UserAlter-MeinAlter
PrintN("")
If Ergebnis=0
PrintN ("Du bist genauso alt wie ich..")
EndIf
If Ergebnis=1
PrintN("Du bist "+Str(Ergebnis)+" Jahr aelter")
EndIf
If Ergebnis>1
PrintN("Du bist "+Str(Ergebnis)+" Jahre aelter")
EndIf
If Ergebnis =-1
PrintN("Du bist "+Str(Ergebnis*(-1))+" Jahr juenger.")
EndIf
If Ergebnis <-1
PrintN("Du bist "+Str(Ergebnis*(-1))+" Jahre juenger.")
EndIf
Input()
ForEver
und Green Snake gehört ins Gebüsch

Verfasst: 09.06.2005 18:52
von Alena
Hallo,
danke erstmal für die hilfreichen und schnellen antworten!
Ich hab das Programm "pure basic" und möchte, dass das Programm damit läuft. Sorry, wusste nicht, dass es da solche Unterschiede gibt

Verfasst: 09.06.2005 19:10
von DarkDragon
Green Snake hat geschrieben:ich habe basic als visual basic interpretiert, falls er doch pb meinte, dann nichts für ungut

basic = dialekt
visual basic = basic dialekt
pure basic = basic dialekt
Verfasst: 09.06.2005 20:02
von Green Snake
ok, schon gut
is ja jetzt egal

Verfasst: 10.06.2005 14:22
von Andre
@Alena: Du hast mit Sicherheit das "Problem", dass Du eine veraltete PureBasic-Version vom Topos-Verlag gekauft hast. Da gabs z.B. noch nicht die Date-Befehle, die hier in einem Beispielcode verwendet wurden.
Mehr Informationen:
Topos-Versionen