** END HEADER -- do not remove this line // // Generated on 10/02/2009 // parameter bModal local f f = new dmy_frForm() if (bModal) f.mdi = false // ensure not MDI f.readModal() else f.open() endif class dmy_frForm of FORM with (this) onOpen = class::FORM_ONOPEN height = 10.9545 left = 53.0 top = 0.0 width = 36.7143 text = "DMY_FR" endwith this.ENTRYFIELD1 = new ENTRYFIELD(this) with (this.ENTRYFIELD1) onOpen = class::ENTRYFIELD1_ONOPEN height = 1.0 left = 19.0 top = 1.5 width = 13.0 picture = "99/99/9999" function = "D" speedTip = "Saisir la date à convertir" value = " / / " endwith this.PBDMY_FR = new PUSHBUTTON(this) with (this.PBDMY_FR) onClick = class::PBDMY_FR_ONCLICK height = 1.5909 left = 4.0 top = 5.5 width = 29.0 text = "convertir la date avec dmy_fr" endwith this.TEXTLABEL1 = new TEXTLABEL(this) with (this.TEXTLABEL1) height = 1.0 left = 1.0 top = 8.5 width = 37.0 text = "résultat de DMY_FR()" alignHorizontal = 1 // Center endwith this.CHECKBOX1 = new CHECKBOX(this) with (this.CHECKBOX1) onChange = class::CHECKBOX1_ONCHANGE height = 1.0909 left = 4.0 top = 3.0 width = 27.0 text = "Jour de la semaine souhaité" endwith this.TEXTLABEL2 = new TEXTLABEL(this) with (this.TEXTLABEL2) height = 1.0 left = 4.0 top = 1.5 width = 14.0 text = "Date à françiser" endwith this.CHECKBOX2 = new CHECKBOX(this) with (this.CHECKBOX2) enabled = false height = 1.0909 left = 4.0 top = 4.0 width = 30.0 text = "Jour de la semaine uniquement" endwith function CHECKBOX1_onChange if this.value = .T. form.checkbox2.enabled = .T. else form.checkbox2.enabled = .F. endif return function ENTRYFIELD1_onOpen this.value = dtoc(date()) return function PBDMY_FR_onClick if form.checkbox1.value if form.checkbox2.value cDate =dmy_fr(ctod(form.entryfield1.value),"jour") else cDate =dmy_fr(ctod(form.entryfield1.value),.T.) endif else cDate =dmy_fr(ctod(form.entryfield1.value)) endif if type("cDate") = "C" // conversion réussie form.textlabel1.text = cDate else form.textlabel1.text = "Date transmise invalide" endif return function form_onOpen this.value = date() return endclass // // Fonction DMY_FR() // // // Adaptation en français des fonctions DMY() et DOW() // usage dmy_fr(dDate, .T./"jour") // DMY_FR({04/02/08}] renvoie 4 fevrier 2008 // DMY_FR({10/10/2009}, .T.) renvoie "Mardi 10 fevrier 2009" // DMY_FR({10/10/2009}, "JOUR") renvoie "Mardi" // Les mois ne comportent pas les accents aigus // la fonction vérifie le nombre de paramètres passés. // s'il y en a plus d'un, ajoute le jour. // le second paramètre est au choix du programmeur, seule sa présence est // nécessaire, il est cependant raisonnable de passer .T. ou .F. // si en second paramètre l'on passe "JOUR" , seul le jour est retourné // Derniere MAJ : 9 fevrier 2009 function DMY_FR parameters dDate, cJourSeul Local cJour, cMois, cAn, cDate, cNomJour, lReussi // Commence par regarder le nombre de paramètres transmis lReussi = .T. // initialise la variable réussi if pcount() > 1 // besoin de retourner le jour cNomjour = dow(dDate) // reverche du jour Do case // conversion en toutes lettres case cNomJour = 1 cNomJour = "Dimanche " case cNomJour = 2 cNomJour = "Lundi " case cNomJour = 3 cNomJour = "Mardi " case cNomJour = 4 cNomJour = "Mercredi " case cNomJour = 5 cNomJour = "Jeudi " case cNomJour = 6 cNomJour = "Vendredi " case cNomJour = 7 cNomJour = "Samedi " Endcase else cNomJour ="" // date seule demandée endif cDate= dtoc(dDate) // conversion de la date en caractères cJour = substr(cDate,1,2) // extrait le jour if val(cJour)< 10 cJour = substr(cJour,2,1) // retire le "0" endif if val(cJour) = 1 cJour = "1er" // remplace "1" par "1er" endif cAn = substr(cDate,7) // année selon le format passé, 2 ou 4 chiffres cMois = substr(cDate,4,2) // mois Do case case cMois= "01" cMois = "Janvier" case cMois= "02" cMois = "Fevrier" case cMois= "03" cMois = "Mars" case cMois= "04" cMois = "Avril" case cMois= "05" cMois = "Mai" case cMois= "06" cMois = "Juin" case cMois= "07" cMois = "Juillet" case cMois= "08" cMois = "Août" case cMois= "09" cMois = "Septembre" case cMois= "10" cMois = "Octobre" case cMois= "11" cMois = "Novembre" case cMois= "12" cMois = "Decembre" Otherwise cMois = msgbox("Conversion ratée - Vérifiez la date transmise", ; "Erreur dans la fonction DMY_FR") lReussi = .F. Endcase cDate = cJour + " " + cMois + " " + cAn if lReussi if type("cJourSeul")= "C" .AND. upper(cJourSeul) = "JOUR" return trim(cNomJour) endif return (cNomjour + cDate) else return .F. endif