Code : Tout sélectionner
;--------------------------------------------------------------------------------------------------
; Fonction donnant la date en clair si elle est proche du jour actuel
; La date est remplacée par Aujourd'hui Hier, Avant-hier, Demain, Après-demain, lundi, mardi, ....
;
; IN $sDate : Date au format JJ-MM-AAAA[ XX:XX:XX] (Ex1="27-10-2011 18:45", Ex2="23-10-2011 19:30, Ex3="24-10-2011")
; OUT La date éclairsie (si date du jour est 27-10-2011 => Ex1="Aujourd'hui 18:45", Ex2="Dimanche 19:30", Ex3 = "Lundi")
;--------------------------------------------------------------------------------------------------
Func _DateEnClair($sDate)
Local $sJour = StringMid($sDate, 7, 4) & "/" & StringMid($sDate, 4, 2) & "/" & StringMid($sDate, 1, 2) ; YYYY/MM/DD
Local $sHeure = StringMid($sDate, 11)
If Not _DateIsValid($sJour) Then Return $sDate
Local $saJour[7] = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]
Local $iDelta = _DateDiff('D', _NowCalcDate(), $sJour)
Switch $iDelta
Case 2
Return "Après-demain" & $sHeure
Case 1
Return "Demain" & $sHeure
Case 0
Return "Aujourd'hui" & $sHeure
Case -1
Return "Hier" & $sHeure
Case -2
Return "Avant-hier" & $sHeure
Case -6 To - 3
Return $saJour[_DateToDayOfWeekISO(StringMid($sDate, 7, 4), StringMid($sDate, 4, 2), StringMid($sDate, 1, 2)) -1] & $sHeure
Case Else
Return $sDate
EndSwitch
EndFunc