PROCEDURE PRIVÉE ExtraitDate(sFormat)
// Convertit les dates chaines en DateHeure W-Langage
dDateHeure est une DateHeure
// Année Mois Jour
dDateHeure..PartieDate = ExtraitChaîne(sFormat, 4, " ") + :VersMoisEnChiffre(ExtraitChaîne(sFormat, 3, " ")) + ExtraitChaîne(sFormat, 2, " ")
dDateHeure..PartieHeure = SansEspace(Remplace(ExtraitChaîne(sFormat, 5, " "), ":", ""))
dDate est une Date = (dDateHeure..PartieDate)
SI dDate..Jour = 00 ALORS
dDateHeure..PartieDate = dDate..Année + dDate..Mois + "01"
FIN
Trace("Sauce PC-Soft : Extraction de la date <"+sFormat+"> qui renvoie <"+dDateHeure+">")
dDateHeure = :ExtraitDate_Finement(sFormat)
Trace("Sauce Moi+Fin : Extraction de la date <"+sFormat+"> qui renvoie <"+dDateHeure+">")
RENVOYER dDateHeure
PROCEDURE ExtraitDate_Finement(vv_chaine_date)
vl_e_i est un entier
vl_e_tmp est un entier
vl_d_date est une chaîne
vl_tc_MOIS est un tableau de 12 chaînes
vl_c_AAAA est une chaîne
vl_c_MM est une chaîne
vl_c_JJ est une chaîne
vl_c_HH est une chaîne
vl_c_MIN est une chaîne
vl_c_SS est une chaîne
vl_e_res est un entier
vl_tc_MOIS[1] = "Jan"
vl_tc_MOIS[2] = "Feb"
vl_tc_MOIS[3] = "Mar"
vl_tc_MOIS[4] = "Apr"
vl_tc_MOIS[5] = "May"
vl_tc_MOIS[6] = "Jun"
vl_tc_MOIS[7] = "Jul"
vl_tc_MOIS[8] = "Aug"
vl_tc_MOIS[9] = "Sep"
vl_tc_MOIS[10] = "Oct"
vl_tc_MOIS[11] = "Nov"
vl_tc_MOIS[12] = "Dec"
vl_e_i = Position(vv_chaine_date,",",0)
TANTQUE vv_chaine_date[[vl_e_i+1]] = " "
vl_e_i++
FIN
vl_e_i++
SI vv_chaine_date[[vl_e_i+1]] = " " ALORS
vl_e_res = vv_chaine_date[[vl_e_i]]
vl_c_JJ = NumériqueVersChaine(vl_e_res,"02d")
SINON
vl_e_res = vv_chaine_date[[vl_e_i A vl_e_i+1]]
vl_c_JJ = NumériqueVersChaine(vl_e_res,"02d")
vl_e_i++
FIN
TANTQUE vv_chaine_date[[vl_e_i+1]] = " "
vl_e_i++
FIN
vl_e_i++
vl_c_MM = vv_chaine_date[[vl_e_i A vl_e_i+2]]
vl_e_tmp = vl_e_i+2
POUR vl_e_i=1 A 12
SI Position(vl_tc_MOIS[vl_e_i],vl_c_MM,0,SansCasse) <>0 ALORS
SORTIR
FIN
FIN
vl_c_MM = NumériqueVersChaine(vl_e_i,"02d")
vl_e_res = vv_chaine_date[[vl_e_tmp+2 A vl_e_tmp+5]]
vl_c_AAAA = NumériqueVersChaine(vl_e_res,"04d")
vl_e_res = vv_chaine_date[[vl_e_tmp+7 A vl_e_tmp+8]]
vl_c_HH = NumériqueVersChaine(vl_e_res,"02d")
vl_e_res = vv_chaine_date[[vl_e_tmp+10 A vl_e_tmp+11]]
vl_c_MIN = NumériqueVersChaine(vl_e_res,"02d")
vl_e_res = vv_chaine_date[[vl_e_tmp+13 A vl_e_tmp+14]]
vl_c_SS = NumériqueVersChaine(vl_e_res,"02d")
vl_d_date = vl_c_AAAA+vl_c_MM+vl_c_JJ+vl_c_HH+vl_c_MIN+vl_c_SS
RENVOYER vl_d_date
Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=6&topic_id=2584&post_id=10967