Kleine Frage?
Übersicht

bruce85Betreff: Kleine Frage? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi,
Ich wollte mal was Probieren wenn man sein Name eingibt und dann sein Geburtsdatum, dann soll eine Meldung kommen in Wieviele Tage man Geburtstag hat, hier mal mein Code wie ich es Probiert habe: Code: [AUSKLAPPEN] ;Startwert Eingabe auf 1
Eingabe = 1 Repeat Cls ;Wenn Eingabe = 1 dann führe das hier aus If Eingabe = 1 Then ;Name eingeben Name$ = Input("Ihr Name: ") ;Geburtsdatum eingeben Geburtsdatum# = Input("Ihr Geburtsdatum: ") ;Eingabe auf 0 setzen Eingabe = 0 EndIf ;Zeigt die Meldung in Wievielen Tagen du Geburtstag hast Print Name$ + " hat in " + (Geburtsdatum + CurrentDate) + " tagen Geburtstag!" Until KeyHit(1) End es funzt irgendwie nicht, ich hab das glaub falsch gemacht, sry ich habe noch nicht soviel erfahrungen mit BB gesammelt. Wisst ihr vieleicht wie man das macht?, ich danke euch schonmal für die hilfe 8) MFG Andreas |
||
- Zuletzt bearbeitet von bruce85 am Di, Jan 17, 2006 15:56, insgesamt einmal bearbeitet
![]() |
MBC |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi
ok, was mir als erstes auffällt: je nachdem, was als geburtsdatum eingegeben wird, kann das nich verarbeitet werden, da als float deklariert. Nimm lieber auch string wie beim name und schreib am besten das format dabei, in dem das datum angegeben soll (zB. 11.11.1111 oda 11.11. oda 11. Nov 11, usw...) dann müssen hinter CurrentDate() die Klammern ![]() so, und dann zu der differenz-sache: leider kann blitz nich so einfach mit daten (=plural von datum?^^) rechnen wie zB excel. dort wird das so gehandhabt, dass ein datum im prinzip als tage (oda stunden, sekunden oda so) ab einem gewissen, fixen datum (bei excel glabu ich 1.1.1970) angegeben wird. dadraus kannste dann das datum errechnen. ist aber relativ aufwändig, da du jetzt zuerstma deine beiden daten in tage ab dem xx.xx.xxxx umwandeln musst (dabei auf schaltjahre achten!). diese beiden zahlen, die da dann rauskommen, kannste voneinander subtrahieren und das ergebnis wieder zurück innen datum umwandeln (auch schaltjahre beachten!)... -> alles in allem ziemlich kompliziert so, ich hoffe, man versteht das so einigermaßen^^ Grüße MBC |
||
Computer sind auch nur Menschen! ![]() |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich danke dir für die schnelle antwort ![]() also ich möchte das man das Geburtsdatum so eingibt z.B. 12.02, und wenn ich auf Enter drücke sollen die Tage von Heute bis zum dieser Datum angezeigt werden, das wären dann 26 Tagen, genauso möchte ich das machen ![]() ich wäre dir sehr dankbar für ein beisapiel code ![]() ich danke dir schonmal 8) Andreas |
||
![]() |
MBC |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok,
da mich sowas auch interessiert, hab ich mich jetzt ma hingesetzt und schnell ne einfache function zusammengebaut: Code: [AUSKLAPPEN] Print DateDifference("17.01.2006","12.02.2006") Function DateDifference(date$,fix$) tag_date=Left(date,2) monat_date=Mid(date,4,2) jahr_date=Right(date,4) tag_fix=Left(fix,2) monat_fix=Mid(fix,4,2) jahr_fix=Right(fix,4) tag_temp=tag_date monat_temp=monat_date jahr_temp=jahr_date ;in dieser schleife wird pro druchlauf ein tag addiert, geprüft, ob dann ein monat/jahr voll ist und immer so weiter bis ;zum festen datum... keine schöne methode, und bestimmt die langsamste, aber sie funktioniert ;) Repeat If tag_temp=tag_fix And monat_temp=monat_fix And jahr_temp=jahr_fix Then ready=1 days=days+1 tag_temp=tag_temp+1 If tag_temp>28+schaltjahr(jahr_temp) And monat_temp=2 Then : monat_temp=3 : tag_temp=1 : EndIf If tag_temp>30 And (monat_temp=4 Or monat_temp=6 Or monat_temp=9 Or monat_temp=11) Then : monat_temp=monat_temp+1 : tag_temp=1 : EndIf If tag_temp>31 And (monat_temp=1 Or monat_temp=3 Or monat_temp=5 Or monat_temp=7 Or monat_temp=8 Or monat_temp=10 Or monat_temp=12) Then : monat_temp=monat_temp+1 : tag_temp=1 : EndIf If monat_temp=13 Then : monat_temp=1 : jahr_temp=jahr_temp+1 : EndIf Until ready=1 days=days-1 Return days End Function ;Eine Funktion um rauszufinden, ob ein Jahr ein Schaltjahr ist oder nicht Function schaltjahr(Jahr) If Jahr Mod 4=0 Then If Jahr Mod 100=0 Then If Jahr Mod 400=0 Then Ergebnis=1 Else Ergebnis=0 EndIf Else Ergebnis=1 EndIf Else Ergebnis=0 EndIf Return Ergebnis End Function Ist leider bisschen unübersichtlich geworden, da ich das alles selbst erst entwickeln musste^^... aber s funktioniert das erste datum im funktionsaufruf muss kleiner als das zweite sein, sonst gehts nich. wenn du die rückgabe von CurrentDate() benutzen möchtest, um das aktuelle datum zu erfahren, müsstest du die dann vorher noch (am besten per Selcet/Case) in die entsprechende form umwandeln (also die englischen abkürzungen der monate durch die entsprechenden zahlen ersetzen). wenn noch was unklar ist (ich könnts mir durchaus vorstellen^^), dann frag einfach |
||
Computer sind auch nur Menschen! ![]() |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group