FUNCTION WRITDATE * expD1 Date * expN1 Number of days (default 1) * expN1 Pass 1 to trim the article (use only for french) PARAMETER tdDate,tnDays,tnTrim PRIVATE lcDate lcDate='' tnDays=IIF(TYPE('tnDays')='N',tnDays,1) tcLangue=IIF(TYPE('tcLangue')='C',tcLangue,'F') IF TYPE('oApp')='O' DO IIF(oApp.Langue=1,'WRITFREN','WRITENGL') ELSE DO WRITENGL ENDIF RETURN IIF(TYPE('tnTrim')<>'N',lcDate,SUBSTR(lcDate,4)) FUNCTION WRITFREN LOCAL lcAnnee lcAnnee=ALLTRIM(STR(YEAR(tdDate))) IF tnDays=1 lcDate="le "+JOUR(tdDate)+MOIS(tdDate)+lcAnnee ENDIF IF tnDays=2 IF MONTH(tdDate)=MONTH(tdDate+1) lcDate="les "+JOUR(tdDate)+" et "+JOUR(tdDate+1)+MOIS(tdDate)+lcAnnee ELSE lcDate="les "+JOUR(tdDate)+MOIS(tdDate)+"et "+JOUR(tdDate+1)+MOIS(tdDate+1)+lcAnnee ENDIF ENDIF IF tnDays=3 IF MONTH(tdDate)=MONTH(tdDate+2) lcDate="les "+JOUR(tdDate)+", "+JOUR(tdDate+1)+" et "+JOUR(tdDate+2)+MOIS(tdDate)+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+1) lcDate="les "+JOUR(tdDate)+", "+JOUR(tdDate+1)+MOIS(tdDate)+; "et "+JOUR(tdDate+2)+MOIS(tdDate+2)+lcAnnee ELSE lcDate="les "+JOUR(tdDate)+TRIM(MOIS(tdDate))+", "+JOUR(tdDate+1)+; " et "+JOUR(tdDate+2)+MOIS(tdDate+1)+lcAnnee ENDIF ENDIF ENDIF IF tnDays=4 IF MONTH(tdDate)=MONTH(tdDate+3) lcDate="les "+JOUR(tdDate)+", "+JOUR(tdDate+1)+", "+JOUR(tdDate+2)+; " et "+JOUR(tdDate+3)+MOIS(tdDate)+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+2) lcDate="les "+JOUR(tdDate)+", "+JOUR(tdDate+1)+" et "+JOUR(tdDate+2)+; MOIS(tdDate)+"et "+JOUR(tdDate+3)+MOIS(tdDate+3)+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+1) lcDate="les "+JOUR(tdDate)+" et "+JOUR(tdDate+1)+TRIM(MOIS(tdDate))+; ", "+JOUR(tdDate+2)+" et " +JOUR(tdDate+3)+MOIS(tdDate+3)+lcAnnee ELSE lcDate="les "+JOUR(tdDate)+TRIM(MOIS(tdDate))+", "+JOUR(tdDate+1)+; ", "+JOUR(tdDate+2)+" et " +JOUR(tdDate+3)+MOIS(tdDate+3)+lcAnnee ENDIF ENDIF ENDIF ENDIF IF tnDays=5 IF MONTH(tdDate)=MONTH(tdDate+4) lcDate="les "+JOUR(tdDate)+", "+JOUR(tdDate+1)+", "+JOUR(tdDate+2)+", "+; JOUR(tdDate+3)+" et "+JOUR(tdDate+4)+MOIS(tdDate)+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+3) lcDate="les "+JOUR(tdDate)+", "+JOUR(tdDate+1)+", "+JOUR(tdDate+2)+; " et "+JOUR(tdDate+3)+MOIS(tdDate)+"et "+JOUR(tdDate+4)+MOIS(tdDate+4)+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+2) lcDate="les "+JOUR(tdDate)+", "+JOUR(tdDate+1)+; " et "+JOUR(tdDate+2)+TRIM(MOIS(tdDate))+", "+JOUR(tdDate+3)+; " et "+JOUR(tdDate+4)+MOIS(tdDate+4)+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+1) lcDate="les "+JOUR(tdDate)+" et "+JOUR(tdDate+1)+TRIM(MOIS(tdDate))+; ", "+JOUR(tdDate+2)+", "+JOUR(tdDate+3)+" et " +JOUR(tdDate+4)+MOIS(tdDate+4)+lcAnnee ELSE lcDate="les "+JOUR(tdDate)+TRIM(MOIS(tdDate))+", "+JOUR(tdDate+1)+; ", "+JOUR(tdDate+2)+", "+JOUR(tdDate+3)+" et " +JOUR(tdDate+4)+MOIS(tdDate+4)+lcAnnee ENDIF ENDIF ENDIF ENDIF ENDIF IF tnDays>1 IF MONTH(tdDate)=12 .AND. MONTH(tdDate+tnDays-1)=1 lcDate=STUFF(lcDate,AT(ALLTRIM(STR(YEAR(tdDate))),lcDate),; 4,ALLTRIM(STR(YEAR(tdDate+tnDays-1)))) lcDate=STUFF(lcDate,AT('décembre',lcDate)+9,0,ALLTRIM(STR(YEAR(tdDate)))+' ') IF AT('décembre,',lcDate)>0 lcDate=STUFF(lcDate,AT('décembre,',lcDate)+8,1,' ') lcDate=STUFF(lcDate,AT('décembre',lcDate)+13,1,',') ENDIF ENDIF ENDIF FUNCTION WRITENGL LOCAL lcAnnee lcAnnee=ALLTRIM(STR(YEAR(tdDate))) IF tnDays=1 lcDate=MOIS2(tdDate)+JOUR(tdDate)+', '+lcAnnee ENDIF IF tnDays=2 IF MONTH(tdDate)=MONTH(tdDate+1) lcDate=MOIS2(tdDate)+JOUR(tdDate)+" and "+JOUR(tdDate+1)+', '+lcAnnee ELSE lcDate=MOIS2(tdDate)+JOUR(tdDate)+" and "+MOIS2(tdDate+1)+JOUR(tdDate+1)+', '+lcAnnee ENDIF ENDIF IF tnDays=3 IF MONTH(tdDate)=MONTH(tdDate+2) lcDate=MOIS2(tdDate)+JOUR(tdDate)+", "+JOUR(tdDate+1)+" and "+JOUR(tdDate+2)+', '+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+1) lcDate=MOIS2(tdDate)+JOUR(tdDate)+" and "+JOUR(tdDate+1)+; " and "+MOIS2(tdDate+2)+JOUR(tdDate+2)+', '+lcAnnee ELSE lcDate=MOIS2(tdDate)+JOUR(tdDate)+", "+MOIS2(tdDate+1)+JOUR(tdDate+1)+; " and "+JOUR(tdDate+2)+', '+lcAnnee ENDIF ENDIF ENDIF IF tnDays=4 IF MONTH(tdDate)=MONTH(tdDate+3) lcDate=MOIS2(tdDate)+JOUR(tdDate)+", "+JOUR(tdDate+1)+", "+JOUR(tdDate+2)+; " and "+JOUR(tdDate+3)+', '+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+2) lcDate=MOIS2(tdDate)+JOUR(tdDate)+", "+JOUR(tdDate+1)+" and "+; JOUR(tdDate+2)+" and "+MOIS2(tdDate+3)+JOUR(tdDate+3)+', '+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+1) lcDate=MOIS2(tdDate)+JOUR(tdDate)+" and "+JOUR(tdDate+1)+; ", "+MOIS2(tdDate+2)+JOUR(tdDate+2)+" and " +JOUR(tdDate+3)+', '+lcAnnee ELSE lcDate=MOIS2(tdDate)+JOUR(tdDate)+", "+MOIS2(tdDate+1)+JOUR(tdDate+1)+; ", "+JOUR(tdDate+2)+" and " +JOUR(tdDate+3)+', '+lcAnnee ENDIF ENDIF ENDIF ENDIF IF tnDays=5 IF MONTH(tdDate)=MONTH(tdDate+4) lcDate=MOIS2(tdDate)+JOUR(tdDate)+", "+JOUR(tdDate+1)+", "+JOUR(tdDate+2)+; ", "+JOUR(tdDate+3)+" and "+JOUR(tdDate+4)+', '+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+3) lcDate=MOIS2(tdDate)+JOUR(tdDate)+", "+JOUR(tdDate+1)+", "+JOUR(tdDate+2)+; " and "+JOUR(tdDate+3)+" and "+MOIS2(tdDate+4)+JOUR(tdDate+4)+', '+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+2) lcDate=MOIS2(tdDate)+JOUR(tdDate)+", "+JOUR(tdDate+1)+" and "+JOUR(tdDate+2)+; ", "+MOIS2(tdDate+3)+JOUR(tdDate+3)+" and " +JOUR(tdDate+4)+', '+lcAnnee ELSE IF MONTH(tdDate)=MONTH(tdDate+1) lcDate=MOIS2(tdDate)+JOUR(tdDate)+" and "+JOUR(tdDate+1)+; ", "+MOIS2(tdDate+2)+JOUR(tdDate+2)+", "+JOUR(tdDate+3)+" and " +JOUR(tdDate+4)+', '+lcAnnee ELSE lcDate=MOIS2(tdDate)+JOUR(tdDate)+", "+MOIS2(tdDate+1)+JOUR(tdDate+1)+; ", "+JOUR(tdDate+2)+", "+JOUR(tdDate+3)+" and " +JOUR(tdDate+4)+', '+lcAnnee ENDIF ENDIF ENDIF ENDIF ENDIF IF tnDays>1 IF MONTH(tdDate)=12 .AND. MONTH(tdDate+tnDays-1)=1 lcDate=STUFF(lcDate,AT(ALLTRIM(STR(YEAR(tdDate))),lcDate),; 4,ALLTRIM(STR(YEAR(tdDate+tnDays-1)))) IF DAY(tdDate)=31 IF tnDays=2 lcDate=STUFF(lcDate,AT('and',lcDate)-1,0,', '+ALLTRIM(STR(YEAR(tdDate)))) ELSE lcDate=STUFF(lcDate,AT(',',lcDate),0,', '+ALLTRIM(STR(YEAR(tdDate)))) ENDIF ELSE lcDate=STUFF(lcDate,AT('and',lcDate)+6,0,', '+ALLTRIM(STR(YEAR(tdDate)))) ENDIF ENDIF ENDIF FUNCTION JOUR PARAMETER tdDate LOCAL lcDay lcDay=ALLTRIM(STR(DAY(tdDate))) RETURN lcDay FUNCTION MOIS PARAMETER tdDate LOCAL lcMois IF MONTH(tdDate)=1 lcMois=" janvier " ELSE IF MONTH(tdDate)=2 lcMois=" février " ELSE IF MONTH(tdDate)=3 lcMois=" mars " ELSE IF MONTH(tdDate)=4 lcMois=" avril " ELSE IF MONTH(tdDate)=5 lcMois=" mai " ELSE IF MONTH(tdDate)=6 lcMois=" juin " ELSE IF MONTH(tdDate)=7 lcMois=" juillet " ELSE IF MONTH(tdDate)=8 lcMois=" août " ELSE IF MONTH(tdDate)=9 lcMois=" septembre " ELSE IF MONTH(tdDate)=10 lcMois=" octobre " ELSE IF MONTH(tdDate)=11 lcMois=" novembre " ELSE lcMois=" décembre " ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF RETURN lcMois FUNCTION MOIS2 PARAMETER tdDate LOCAL lcMois IF MONTH(tdDate)=1 lcMois="January " ELSE IF MONTH(tdDate)=2 lcMois="February " ELSE IF MONTH(tdDate)=3 lcMois="March " ELSE IF MONTH(tdDate)=4 lcMois="April " ELSE IF MONTH(tdDate)=5 lcMois="May " ELSE IF MONTH(tdDate)=6 lcMois="June " ELSE IF MONTH(tdDate)=7 lcMois="July " ELSE IF MONTH(tdDate)=8 lcMois="August " ELSE IF MONTH(tdDate)=9 lcMois="September " ELSE IF MONTH(tdDate)=10 lcMois="October " ELSE IF MONTH(tdDate)=11 lcMois="November " ELSE lcMois="December " ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF RETURN lcMoisThis goes up to 5 days.