[Func] Trouver le quantième jour de la semaine du mois

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

[Func] Trouver le quantième jour de la semaine du mois

#1

Message par mikell »

Fonction issue de ce topic http://www.autoitscript.fr/forum/viewto ... f=3&t=9516

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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [Func] Trouver le quantième jour de la semaine du mois

#2

Message par jl56 »

Bonjour

Superbe et bravo

je suis née le 4 éme Mercredi du mois

J'ai réalisé plusieurs scripts de sauvegarde avec des outils standard comme ntbackup, robocopy etc.
Cette fonction me permettra de choisir de lancer une sauvegarde tous les 1er et 3éme samedi, par exemple, comme le font des logiciels plus évolués.


Merci

A+ JL56
Répondre