Date 1906 au lieu de 2006
Le
ordago
Bonjour.
Nous avons un programme d'interface développé par une société qui n'existe
plus. Nous avons les sources. Notre PB est le suivant:
Le programme d'interface transmet des mouvements de patients d'une
application A vers une application B. Il y a notamment de dates, l'année
étant codée sur 2 caractères (28/02/06) dans l'application A. Le programme
d'interface transforme l'année en 4 caractères (28/02/2006). On doit tenir
aussi compte du fait qu'il existe des dates 01/01/92 qui doivent-être
transformées en 01/01/1992.
Depuis le 01/01/2006, la date est transformée en 28/02/1906 au lieu de
28/02/2006.
Je ne suis pas expert en programmation, par contre j'ai repéré une partie du
code pouvant concerner mon PB:
If Val(Mid(Trim(TD("Datent")), 5, 2)) <= Val(Format(Year(Now), "yy")) Then
z_a = "20"
Else
z_a = "19"
Datent étant un champ récupéré dans l'application A.
Peut-on modifié ce code de manière à ce que les dates < sont transformées
en 20xx et les autres en 19xx ?
Ex: 20/01/06 => 20/01/2006
20/01/11 => 20/01/1911
Merci de votre aide.
Nous avons un programme d'interface développé par une société qui n'existe
plus. Nous avons les sources. Notre PB est le suivant:
Le programme d'interface transmet des mouvements de patients d'une
application A vers une application B. Il y a notamment de dates, l'année
étant codée sur 2 caractères (28/02/06) dans l'application A. Le programme
d'interface transforme l'année en 4 caractères (28/02/2006). On doit tenir
aussi compte du fait qu'il existe des dates 01/01/92 qui doivent-être
transformées en 01/01/1992.
Depuis le 01/01/2006, la date est transformée en 28/02/1906 au lieu de
28/02/2006.
Je ne suis pas expert en programmation, par contre j'ai repéré une partie du
code pouvant concerner mon PB:
If Val(Mid(Trim(TD("Datent")), 5, 2)) <= Val(Format(Year(Now), "yy")) Then
z_a = "20"
Else
z_a = "19"
Datent étant un champ récupéré dans l'application A.
Peut-on modifié ce code de manière à ce que les dates < sont transformées
en 20xx et les autres en 19xx ?
Ex: 20/01/06 => 20/01/2006
20/01/11 => 20/01/1911
Merci de votre aide.

Poser une question


Actuellement, votre code teste l'année reçue avec l'année en cours
Le test que vous souhaitez est le suivant
If Val(Mid(Trim(TD("Datent")), 5, 2)) <= 10 Then
z_a = "20"
Else
z_a = "19"
end if
A priori vous testez une date de naissance. Qu'allez-vous faire pour les
gens né avant 1910 ?
Cordialement
Georges
"ordago"
Plus ou moins un truc dans ce genre ci je suppose :
'---8<---VBS
Afficher Traiter_Date("01/01/92")
Afficher Traiter_Date("20/01/06")
Afficher Traiter_Date("20/01/11")
Function Traiter_Date(quoi)
Traiter_DateÍate(quoi)
If Year(Traiter_Date) > 2010 Then _
Traiter_DateÚteAdd("yyyy",-100,CDate(quoi))
End Function
Function Afficher(quoi)
WScript.Echo quoi
End Function
'---8<---VBS
Amicalement,
--
Jean - JMST
Belgium
La fonction Val(Format(Year(Now), "yy")) nous retoune toujours 5
En utilisant Val(Format(Now, "yy")), nous obtenons la valeur 6 (année de la
date du jour transformée en valeur)
En utilisant:
If Val(Mid(Trim(TD("Datsor")), 5, 2)) <= Val(Format(Now, "yy"))
nous corrigeons le PB.
Merci à vous.
Cordialement.
"Georges" wrote: