Italia
Foro

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!)re>
 
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 Io l' Zusammenhang jetzt nicht kappiere. ^^
 
20.02.2013  
 




Georg
sorry ich erstelle in einer Schleife edits von 1 - 31,jeweils per 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 per 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) potrebbe 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
/pre>

Wenn %error = 2 dann ungültiges Datum.

Saluto Ragnar
 
21.02.2013  
 




Jörg
Sellmeyer
Ist ne gute Idee. In dem Zusammenhang, potuto 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 presumibilmente dann nicht auf meine Idee gekommen. Eine Anpassung der Aiuto diesbezüglich wäre naturalmente auch erforderlich.

r.r.
 
22.02.2013  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

11.565 Views

Untitledvor 0 min.
H.Brill10.10.2022
p.specht21.12.2020
Walter25.12.2016
rquindt19.09.2015
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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