ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008
-
3 sept. 2007 à 15:06
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDerniè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 ?
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDernière intervention 7 mai 20131 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
ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDerniè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
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDernière intervention 7 mai 20131 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