OVH Cloud OVH Cloud

Date 1906 au lieu de 2006

3 réponses
Avatar
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 <=10 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.

3 réponses

Avatar
Georges
Bonjour
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" a écrit dans le message de news:

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.






Avatar
Jean
Peut-on modifié ce code de manière à ce que les dates < sont transformées
en 20xx et les autres en 19xx ?


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

Avatar
ordago
Nous avons trouvé, il y avait une erreur de syntaxe:
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:

Bonjour
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" a écrit dans le message de news:

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.