Titolo: Calcolo del numero della settimana (2)
Categoria: Codice |
|
Ultimo Aggiornamento: 12/01/09 |
Un po' di tempo fa avevo letto un discussione sul calcolo del numero della settimana; mi è capitato di leggere la definizione dell'inizio anno in base alla quale l'anno inizia dal Lunedì della settimana che contiene il 4 gennaio ed ecco qui l'algoritmo corretto
xData:=Date(Request("Data";String(Current date)))
` ----------------------------------------------------
` User name (OS): llarosa
` Date and time: 12/01/09, 13:09:35
` ----------------------------------------------------
` Method: Calcolo numero settimana
` Description Ritorna la settimana dell'anno usando ISO 8601 standard
` ( l'anno parte dal Lunedi della settimana che contiene il 4 Gennaio)
`
` Parameters
` ----------------------------------------------------
` calcolo il 4 di gennaio che giorno è -2 perchè la day number conta come primo giorno la domenica
Jan04DOW:=
Day number(
Date("04-01-"+
String(
Year of(xData))))-2
` avendo fatto -2 la domenica diventa -1 e la riporto a 6
Jan04DOW:=(
Num(Jan04DOW=-1)*6)+(
Num(Jan04DOW#-1)*Jan04DOW)
` calcolo la data del primo lunedi dell'anno
FirstMonday:=
Date("04-01-"+
String(
Year of(xData)))-Jan04DOW
` se la data è inferiore al primo lunedi dell'anno allora appartengono all'ultima settimana dell'anno
` prima quindi calcolo il primo lunedi dell'anno precedente
If (xData<FirstMonday)
` come già descritto ma riferito all'anno precedente
Jan04DOW:=
Day number(
Date("04-01-"+String(Year of(xData)-1)))-2
Jan04DOW:=(
Num(Jan04DOW=-1)*6)+(
Num(Jan04DOW#-1)*Jan04DOW)
FirstMonday:=
Date("04-01-"+
String(
Year of(xData)-1))-Jan04DOW
End if xWeek:=(
Int((xData-FirstMonday)/7))+1 ` calcolo della settimana
End if ALERT(String(xWeek))
Inviato da: Luca La Rosa |
|
Visite: 15009 |
Se accedi con utente e password, puoi aggiungere dei commenti.