Aide et conseils concernant AutoIt et ses outils.
-
ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
-
Status :
Hors ligne
#1
Message
par ricky »
Hello,
existe-t-il une fonction pour nous retourner le numéro de la semaine en cours ou d'une date?
Merci d'avance
Modifié en dernier par
ricky le mer. 13 avr. 2011 13:11, modifié 1 fois.
-
Jerome
- Niveau 9

- Messages : 661
- Enregistré le : mar. 07 avr. 2009 08:35
- Localisation : Picardie
-
Status :
Hors ligne
#2
Message
par Jerome »
Coucou,
Je te conseil de regarder du coté de la fonction
_WeekNumber // _WeekNumberISO dans
Date.au3
Si tu ne la pas, la voici :
► Afficher le texte
Code : Tout sélectionner
; #NO_DOC_FUNCTION# =============================================================================================================
; Name...........: _WeekNumber
; Description ...: Find out the week number of current date OR date given in parameters
; Syntax.........: _WeekNumber([$iYear = @YEAR[, $iMonth = @MON[, $iDay = @MDAY[, $iWeekStart = 1]]]])
; Parameters ....: $iYear - Year value (default = current year)
; $iMonth - Month value (default = current month)
; $iDay - Day value (default = current day)
; $iWeekStart - Week starts from Sunday (1, default) or Monday (2)
; Return values .: Success - Returns week number of given date
; Failure - -1 and sets @ERROR to:
; | 1 - On faulty parameters
; |99 - On non-acceptable weekstart and uses default (Sunday) as starting day
; Author ........: JdeB
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........;
; Example .......;
; ===============================================================================================================================
Func _WeekNumber($iYear = @YEAR, $iMonth = @MON, $iDay = @MDAY, $iWeekStart = 1)
Local $iDow0101, $iDow0101ny
Local $iDate, $iStartWeek1, $iEndWeek1, $iEndWeek1Date, $iStartWeek1ny, $iStartWeek1Dateny
Local $iCurrDateDiff, $iCurrDateDiffny
; Check for erroneous input in $Day, $Month & $Year
If $iDay > 31 Or $iDay < 1 Then
SetError(1)
Return -1
ElseIf $iMonth > 12 Or $iMonth < 1 Then
SetError(1)
Return -1
ElseIf $iYear < 1 Or $iYear > 2999 Then
SetError(1)
Return -1
ElseIf $iWeekStart < 1 Or $iWeekStart > 2 Then
SetError(2)
Return -1
EndIf
;
;$idow = _DateToDayOfWeekISO($iYear, $iMonth, $iDay);
$iDow0101 = _DateToDayOfWeekISO($iYear, 1, 1);
$iDate = $iYear & '/' & $iMonth & '/' & $iDay
;Calculate the Start and End date of Week 1 this year
If $iWeekStart = 1 Then
If $iDow0101 = 6 Then
$iStartWeek1 = 0
Else
$iStartWeek1 = -1 * $iDow0101 - 1
EndIf
$iEndWeek1 = $iStartWeek1 + 6
Else
$iStartWeek1 = $iDow0101 * - 1
$iEndWeek1 = $iStartWeek1 + 6
EndIf
;$iStartWeek1Date = _DateAdd('d',$iStartWeek1,$iYear & '/01/01')
$iEndWeek1Date = _DateAdd('d', $iEndWeek1, $iYear & '/01/01')
;Calculate the Start and End date of Week 1 this Next year
$iDow0101ny = _DateToDayOfWeekISO($iYear + 1, 1, 1);
; 1 = start on Sunday / 2 = start on Monday
If $iWeekStart = 1 Then
If $iDow0101ny = 6 Then
$iStartWeek1ny = 0
Else
$iStartWeek1ny = -1 * $iDow0101ny - 1
EndIf
;$IEndWeek1ny = $iStartWeek1ny + 6
Else
$iStartWeek1ny = $iDow0101ny * - 1
;$IEndWeek1ny = $iStartWeek1ny + 6
EndIf
$iStartWeek1Dateny = _DateAdd('d', $iStartWeek1ny, $iYear + 1 & '/01/01')
;$iEndWeek1Dateny = _DateAdd('d',$IEndWeek1ny,$iYear+1 & '/01/01')
;number of days after end week 1
$iCurrDateDiff = _DateDiff('d', $iEndWeek1Date, $iDate) - 1
;number of days before next week 1 start
$iCurrDateDiffny = _DateDiff('d', $iStartWeek1Dateny, $iDate)
;
; Check for end of year
If $iCurrDateDiff >= 0 And $iCurrDateDiffny < 0 Then Return 2 + Int($iCurrDateDiff / 7)
; > week 1
If $iCurrDateDiff < 0 Or $iCurrDateDiffny >= 0 Then Return 1
EndFunc ;==>_WeekNumber
Plus d'info sur le forum anglais, notament à
cette page
Ou plus littéralement avec la fonction ISO :
► Afficher le texte
Code : Tout sélectionner
#include <Date.au3>
$WeekNumber = _WeekNumberISO()
MsgBox("","","Le numéro de la semaine en cours est : " & $WeekNumber)
Jérôme
-
jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
-
Status :
Hors ligne
#3
Message
par jchd »
_WeekNumberISO(), dans l'aide

EDIT: argghhh, battu sur le fil !
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
-
ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
-
Status :
Hors ligne
#4
Message
par ricky »
J'ai cherché toutes les fonctions avec time et date, mais j'ai pas pensé à week...
Parfait, merci