Français
Forum

date sur gültig vérifier

 
- page 1 -



Walter
Salut,

Hintergrund: je parse une Text pour Datumswerten (dans DB-Format) et errechne aus deux Datumswerten qui Tages-Differenz .

Freeprofan 095, Prfrun32.exe
Set("ErrorLevel", 0)
declare date1$,date2$,Diff%
'Eingelesene Werte zB
Datum1$=20161001
Datum2$=20161030
'+----------------------------------------------

Proc DeltaTage_DB_Format

    '+----------------------------------------------
    'Berechnet Anzahl de Tagen entre 2 Datumswerten
    'paramètre: Anfang, Ende dans Datenbankformat
    'Rückgabe Differenz Tage Integer
    Paramètres de$,jusqu'à$
    Retour dt("DaysBetween", dt("setdate",DToC$(de$)), dt("setdate",DToC$(jusqu'à$)))

endproc'DeltaTage_DB_Format

' Hauptprogramm
Diff% = DeltaTage_DB_Format(date1$,date2$)
messagebox(str$(diff%),"Differenz-Tage",0)

chez Eingabe gültiger Datumswerte errechnet cela Programme qui Differenz.
chez fehlerhaftem Datumswert bricht "setdate" cela Programme sans Possibilité einer réaction ab.
Gibt es qui Possibilité, un date sur gültig trop überprüfen, bevor on es verwendet?

LG

Walter
 
03.11.2016  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »


Jörg
Sellmeyer
je serait es so faire:
Set("ErrorLevel", 0)
declare date1$,date2$,Diff%
'Eingelesene Werte zB
Datum1$=20161001
Datum2$=20161030
'+----------------------------------------------

Proc DeltaTage_DB_Format

    '+----------------------------------------------
    'Berechnet Anzahl de Tagen entre 2 Datumswerten
    'paramètre: Anfang, Ende dans Datenbankformat
    'Rückgabe Differenz Tage Integer
    Set("ErrorLevel", -1)
    Paramètres de$,jusqu'à$
    Var Wert$ = dt("DaysBetween", dt("setdate",DToC$(de$)), dt("setdate",DToC$(jusqu'à$)))
    'imprimer %error

    Si %Error > 0

        'imprimer "Fehler"
        Wert$ = "Fehler"

    EndIf

    Set("ErrorLevel", 0)
    Retour Wert$

endproc'DeltaTage_DB_Format

' Hauptprogramm
Var Ergebnis$ = DeltaTage_DB_Format(date1$,date2$)

Si Ergebnis$ = "Fehler"

    '...

D'autre

    diff% = Val(Ergebnis$)
    'ici ensuite qui weitere Behandlung

EndIf

Waitinput
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
03.11.2016  
 




Walter
Oho - trickreich!
Herzlichen Dank!
Walter
 
03.11.2016  
 




Michael
W.
quelques Routinen aus MwDate
Proc MakeFullYear

    ' Füllt cela (eventuell) vergessene siècle sur.
    ' Y = MakeFullYear( Y )
    Paramètres Y%
    Déclarer ThisCentury%, ThisCenturyRange%
    ThisCentury% = 20
    ThisCenturyRange% = 29'2000 - 2029, sonst 1930 - 1999

    Si Y% < 100

        Casenote Between(ThisCenturyRange%,0,99) : ThisCenturyRange% = 29
        Casenote Between(ThisCentury%,16,39) : ThisCentury% = Int(dt("GetYear",!now) / 100)

        Si Y% <= ThisCenturyRange%

            ' aktuelles l'an
            Y% = Y% + (ThisCentury% * 100)

        D'autre

            ' Vorjahr
            Y% = Y% + ((ThisCentury% - 1) * 100)

        EndIf

    EndIf

    Retour Y%

ENDPROC

Proc LastDayInMonth

    ' Liefert den letzten journée des Monats.
    ' Ultimo = LastDayInMonth( Mo, Y )
    ' -1 = faute
    Paramètres Mo%, Y%
    Déclarer Leap%, Ultimo%, LDiM%[12]
    LDiM%[0]=0:LDiM%[1]=31:LDiM%[2]=28:LDiM%[3]=31:LDiM%[4]=30:LDiM%[5]=31:LDiM%[6]=30
    LDiM%[7]=31:LDiM%[8]=31:LDiM%[9]=30:LDiM%[10]=31:LDiM%[11]=30:LDiM%[12]=31
    Ultimo% = -1
    Cas Y% < 100 : Y% = MakeFullYear(Y%)
    Leap% = si((((Y% mod 4) = 0) and ((Y% mod 100) <> 0)) or ((Y% mod 400) = 0), 1, 0)' isLeapYear(Y)
    Cas Between(Mo%,1,12) : Ultimo% = LDiM%[Mo%] + si( (Mo% = 2) and (Leap% = 1), 1, 0)
    Retour Ultimo%

ENDPROC

Proc isValidDate

    ' Prüft journée,mois,l'an sur Gültigkeit.
    ' ok = isValidDate(D,Mo,Y)
    ' 0 = invalid (faux)
    ' 1 = valid (vrai)
    Paramètres D%,Mo%,Y%
    Déclarer ok%
    ok% = 0
    Cas Between(Y%,1600,3999, Mo%,1,12, D%,1,(LastDayInMonth(Mo%,Y%))) : Inc ok%
    Retour ok%

ENDPROC

Proc GetDayDB

    ' Zieht den journée aus einem DB-date.
    ' Day = GetDayDB( DB )
    Paramètres DB%
    Retour DB% mod 100

ENDPROC

Proc GetMonthDB

    ' Zieht den mois aus einem DB-date.
    ' Month = GetMonthDB( DB )
    Paramètres DB%
    Retour Int((DB% mod 10000) / 100

ENDPROC

Proc GetYearDB

    ' Zieht cela l'an aus einem DB-date.
    ' Year = GetYearDB( DB )
    Paramètres DB%
    Retour Int(DB% / 10000)

ENDPROC

Proc SetDB

    ' Erstellt aus journée,mois,l'an un DB-date avec Gültigkeitsprüfung.
    ' DB = SetDB(D,Mo,Y)
    ' -1 = faute
    Paramètres D%,Mo%,Y%
    Déclarer DB%
    DB% = -1
    Cas Y% < 100 : Y% = MakeFullYear(Y%)
    Cas isValidDate(D%,Mo%,Y%) : DB% = Y% * 10000 + Mo% * 100 + D%
    Retour DB%

ENDPROC

 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
03.11.2016  
 




Walter
oui, ce sont très nützliche Routinen!
Habe mich sonst à cause de qui pas entier einfachen Verwendung qui neuen Datumsfunktionen zusätzlich avec Funktionen aus prfdat32.dll droite bien beholfen.
merci!
Walter
 
05.11.2016  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

8.644 Views

Untitledvor 0 min.
H.Brill10.10.2022
Langer30.01.2021
PETER195601.11.2020
p.specht23.02.2020
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie