Code : Tout sélectionner
; Formule excel
; =7*(A1-1)+DATE(ANNEE(AUJOURDHUI());1;1)-MOD((DATE(ANNEE(AUJOURDHUI());1;1))-2;7)
; cellule A1 = 38 = 39706 ou 15/09/2008
; 38 39706 15/09/2008
;
; 259 =7*(A1-1)
; +
; 10/12/2008 =AUJOURDHUI()
; 2008 =ANNEE(AUJOURDHUI())
; 01/01/2008 =Date(ANNEE(AUJOURDHUI());1;1) = 39448
; -
; 10/12/2008 =AUJOURDHUI()
; 2008 =ANNEE(AUJOURDHUI())
; 01/01/2008 =Date(ANNEE(AUJOURDHUI());1;1) = 39448
;
; 01/01/1900 =MOD((Date(ANNEE(AUJOURDHUI());1;1))-2;7) = 1
;
; 17/09/2008
; Date() ; nombre de secondes écoulées depuis le 1er janvier 1970).
Procedure.s SemaineVersDate(numero_semaine.b); ,format_retour.b)
Protected annee.w, nb_jour.w, date_1erjour_annee.l, date_semaine.s
annee = Year(Date())
nb_jour = 7*(numero_semaine-1)
date_1erjour_annee = ParseDate("%dd/%mm/%yyyy", "01/01/"+Str(annee))
date_semaine = FormatDate("%dd/%mm/%yyyy", AddDate(date_1erjour_annee, #PB_Date_Day, nb_jour-1))
;s_result.s = Str(w_annee)+"/"+Str(b_mois)+"/"+Str(b_jour)
ProcedureReturn date_semaine
EndProcedure
Debug SemaineVersDate(38)
Debug SemaineVersDate(2)