Champ date dépassé

ducker88 Messages postés 277 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 4 mai 2008 - 3 sept. 2007 à 15:06
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 - 3 sept. 2007 à 18:05
Bonjour à tous,

J'aimerai savoir à quoi peu t'on comparé un champ date qui aurait dépassé sa valeur maximale ?
quand je la teste cela me renvoi {  /  /    }.
Si je la compare à null ca ne fonctionne pas, si je la compare a la chaine de caractère si dessus non plus.
A quoi correspond le {  /  /    } d'un point de vue foxpro ?

Merci pour vos reponses.

duck88

3 réponses

michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
3 sept. 2007 à 16:22
Bonjour,

{  /  /    } , en FoxPro, c'est une date vide (les dates vides sont une particularité de VFP)
donc si TestDate est cette variable, empty(testdate) doit te renvoyer .T.

Mais... avant de poster cette réponse, je teste, et je constate que
?date(9999,12,31) affiche correctement 31/12/9999 c'est la date la plus grande que gère FoxPro
?date(9999,12,31)+1 affiche effectivement {  /  /    },
mais que ?empty(date(9999,12,31)+1) renvoie .F.
et que ?year(date(9999,12,31)+1)  renvoie 0 month et day également.

Conclusion : ça ressemble à un bug, bravo de l'avoir trouvé

donc tester d'abord le empty, et re-tester sur le year, si empty est faux et year=0, alors tu sais que tu as dépassé la valeur maximale des dates
0
ducker88 Messages postés 277 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 4 mai 2008
3 sept. 2007 à 16:31
En fait j'ai fait plus simple, je teste simplement ma date avec un day() si cela me ramene 0 je considere que ma date est vide.
Existe t'il un autre cas ou la day puisse renvoyé 0 ?

En tout cas merci de ta réponse.
P.S. : J'aurai préféré que ce bug n'existe pas j'aurai gagné du temps

duck88
0
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
3 sept. 2007 à 18:05
Non, je ne vois pas d'autre cas où DAY pourrait valoir 0
attention, la date n'est pas vide ! c'est bien là qu'est le bug, fox t'affiche ça comme si c'était vide, mais te dit que ça ne l'est pas

Perso, je conserverais test=!empty(date_a_tester) and day(date_a_tester)=0
0
Rejoignez-nous