Deutsch
Forum

Ungültiges Datum ermitteln

 

Georg
Wie kann ich ein ungültiges Datum abfangen z.B.
Im Programm kommt dann eine Fehlermeldung,"Ungültiges Datum oder Zeitformat" die ich abfangen muß.
Kann man auf ungültiges Datum mit einer Funktion überprüfen?
KompilierenMarkierenSeparieren
declare d!
d! = dt("setDate", "30.02.2013", d!)
print  dt("getDoW", d!)
 
20.02.2013  
 



Vielleicht einfach einen getDate<>setDate abgleich,

also wenn getDate etwas anderes zurückliefert als das bei setDate eingegebene
Datum dann ist scheinbar was verrutscht.
 
20.02.2013  
 




Georg
Das isses nicht. Ich will soviel edits erzeugen wie der Monat Tage hat und dabei die Sonnabende Tag =6 und SonntageTag = 7 anders einfärben.
 
20.02.2013  
 



Ich bin etwas verwirrt da im ersten Beitrag meiner Meinung nach ein ganz anderes
Problem beschrieben ist oder ich den Zusammenhang jetzt nicht kappiere. ^^
 
20.02.2013  
 




Georg
sorry ich erstelle in einer Schleife edits von 1 - 31,jeweils für einen Monat
setze das jeweils das nächst datum in der Schleife und frage den tag ab und wenn 6 oder 7 färbe ich das entsprechende edit. Im Februar und in monaten mit nur 30 Tagen -> crash. deswegen wollte ich prüfen, ob das ein ein gültiges datum ist.
 
20.02.2013  
 




Julian
Schmidt
Es reicht dabei nicht aus zu prüfen ob das Datum dem richtigen Format entspricht.
Du musst explizit für jeden Tag eines Monats prüfen, ob dieser in den entsprechenden Monat existiert.

Geht zum Beispiel so. (ohne Beachtung von Schaltjahr)
KompilierenMarkierenSeparieren
CLS
Declare maxday$
maxday$="31|28|31|30|31|30|31|31|30|31|30|31"

whileloop 12

    print Str$(&loop)+". Monat hat "+SubStr$(maxday$,&loop,"|")+" Tage"

    If Between(30, 1, Val(SubStr$(maxday$,&loop,"|")))

        print "30. Tag innerhalb des "+Str$(&loop)+". Monat"

    Else

        print "30. Tag NICHT innerhalb des "+Str$(&loop)+". Monat"

    Endif

    print "\n"
    waitinput

EndWhile

end
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
20.02.2013  
 



Schade das ich meine (wenn auch ziemlich kryptische) Formel grad nicht finde,
die ausrechnet samt Schaltjahr, wievele Tage ein Monat hat.
 
20.02.2013  
 




Julian
Schmidt
Geht auch so:
KompilierenMarkierenSeparieren
CLS
Declare maxday$,year&
maxday$="31|28|31|30|31|30|31|31|30|31|30|31"
year&=2012

whileloop 12

    print "Der "+Str$(&loop)+". Monat hat "+Str$(Val(SubStr$(maxday$,&loop,"|"))+(((year& mod 4)=0) and (&loop=2)))+" Tage"

    If Between(30, 1, Val(SubStr$(maxday$,&loop,"|"))+(((year& mod 4)=0) and (&loop=2)))

        print "30. Tag innerhalb des "+Str$(&loop)+". Monat"

    Else

        print "30. Tag NICHT innerhalb des "+Str$(&loop)+". Monat"

    Endif

    print "\n"
    waitinput

EndWhile

end
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
20.02.2013  
 




Jörg
Sellmeyer
In Verbindung mit dt("IsLeapYear", D) dürfte das die einfachste Möglichkeit sein.
Da muss man nur den 29.2. abfragen und bei True eben noch ein Feld erzeugen.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
21.02.2013  
 




Ragnar
Rehbein
Warum nicht so ?
KompilierenMarkierenSeparieren
set("errorlevel",-1)
print dt("setDate", "29.02.2013")
print %error
set("errorlevel",0)
WaitInput

Wenn %error = 2 dann ungültiges Datum.

Gruß Ragnar
 
21.02.2013  
 




Jörg
Sellmeyer
Ist ne gute Idee. In dem Zusammenhang, könnte dann auch gleich noch die XProfansche Fehlermeldung wegen eines falschen Datumsformates abgeschafft werden, da es ohnehin sinnvoller ist, wenn der Programmierer, die Überprüfung selber vornimmt.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.02.2013  
 




Ragnar
Rehbein
Ich würde diesen Fehler von der Wichtigkeit her auch eher als Warnung einstufen. Dann bräuchte man den Errorlevel nicht ändern und %error wäre dann eben 1.
Andererseits wäre ich vermutlich dann nicht auf meine Idee gekommen. Eine Anpassung der Hilfe diesbezüglich wäre natürlich auch erforderlich.

r.r.
 
22.02.2013  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

11.597 Betrachtungen

Unbenanntvor 0 min.
H.Brill10.10.2022
p.specht21.12.2020
Walter25.12.2016
rquindt19.09.2015
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie