Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Da un numero della settimana al range di date
martedì 10 febbraio 2009 - 12.51
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
MANU
Profilo
| Newbie
15
messaggi | Data Invio:
mar 10 feb 2009 - 12:51
Ciao David,
vorrei sapere come si fa a trovare il range di date dal... al ... avendo solo il numero della settimana
es.: settimana numero 36 che settimana corrisponde?
Grazie MANU
ECCO LA SOLUZIONE:
DateTime lunedi = new DateTime();
DateTime domenica = new DateTime();
lunedi = utility.DayOfWeekByWeekNumber(2009, 4, DayOfWeek.Monday);
domenica = utility.DayOfWeekByWeekNumber(2009, 4, DayOfWeek.Sunday);
// dato il nome del giorno della settimana, la funzione restituisce il numero progressivo del giorno nella settimana
// lunedi è il primo, etc..
private static int NumberOfDayInWeek(DayOfWeek DayName)
{
int numero_giorno = 0;
switch (DayName)
{
case DayOfWeek.Monday:
numero_giorno = 1;
break;
case DayOfWeek.Tuesday:
numero_giorno = 2;
break;
case DayOfWeek.Wednesday:
numero_giorno = 3;
break;
case DayOfWeek.Thursday:
numero_giorno = 4;
break;
case DayOfWeek.Friday:
numero_giorno = 5;
break;
case DayOfWeek.Saturday:
numero_giorno = 6;
break;
case DayOfWeek.Sunday:
numero_giorno = 7;
break;
default:
break;
}
return numero_giorno;
}
public static DateTime DayOfWeekByWeekNumber(int Year, int NumberOfWeek, DayOfWeek Giorno_Settimana)
{
int inizio_settimana = 0;
// primo giorno dell'anno è sempre l'1 gennaio
DateTime dt = new DateTime(Year, 1, 1);
// decideo quale numero all'interno della settimana sia il primo gennaio
int numero_gg_residui_settimana_1 = 0;
numero_gg_residui_settimana_1 = NumberOfDayInWeek(dt.DayOfWeek);
// ora calcolo quanti gg fanno parte della prima settimana
inizio_settimana = 7 - numero_gg_residui_settimana_1 + 1;
// ora calcolo quanti gg ci sono dalla seconda settimana di gennaio fino alla settimana richiesta
int gg_mancanti_alla_settimana = (NumberOfWeek - 2) * 7;
// ora calcolo il numero del giorno all'interno dell'anno corrispondente al LUNEDI della settimama richiesta
int gg_inizio_anno = gg_mancanti_alla_settimana + inizio_settimana + NumberOfDayInWeek(Giorno_Settimana) - 1;
// ora calcolo che giorno era il lunedi della settimana richiesta
dt = dt.AddDays(gg_inizio_anno);
DayOfWeek test = dt.DayOfWeek;
if (test == DayOfWeek.Monday)
{
// allora i conti tornano
}
return dt;
}
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !