Donne le numéro (rang) d'un jour donné dans le mois (par exemple : 2ème lundi du mois)
En cas d'échanges culturels le nom de la fonction peut être modifié
Code : Tout sélectionner
; $myday = _ZisDayRangeInZeMonth("17/03/2012")
$myday = _ZisDayRangeInZeMonth(@MDAY &"/"& @MON &"/"& @YEAR)
MsgBox(32, "Info", "Ce " & $myday[0] & " est le " & $myday[1] & $myday[0] & " du mois ")
Func _ZisDayRangeInZeMonth($date)
Local $elts = StringSplit($date, "/")
Local $res[2]
Local Const $aDayOfWeek[8] = ["", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"]
Local $i_aFactor = Int((14 - $elts[2]) / 12)
Local $i_yFactor = $elts[3] - $i_aFactor
Local $i_mFactor = $elts[2] + (12 * $i_aFactor) - 2
Local $iDayNum = Mod($elts[1]+ $i_yFactor + Int($i_yFactor / 4) - Int($i_yFactor / 100) _
+ Int($i_yFactor / 400) + Int((31 * $i_mFactor) / 12), 7)
$res[0] = $aDayOfWeek[$iDayNum + 1]
Local Const $zisweekrangeinzemonth = Ceiling($elts[1]/7)
Local $quant = " ème "
If $zisweekrangeinzemonth = 1 Then $quant = " er "
$res[1] = $zisweekrangeinzemonth & $quant
Return $res
EndFunc