KuckelMedlem sedan jan. 2002104 inlägg Har ett litet datumproblem. Jag vill lista hela den aktuella veckan i en datalist (veckodagar) och på varje rad ska den hämta antal besökare från just den dagen från en sql-databas, men jag måste då veta varje veckodags datum men har inte funnit en bra lösning. Några förslag?
Måndag --------------------------------- 2 st
Tisdag ---------------------------------- 33 st
Onsdag ---------------------------------- xx st
Torsdag --------------------------------- xx st
Fredag
Lördag
Söndag
GladhMedlem sedan maj 20012 812 inlägg Oj.. Tänkte nog fel där.
dateTime.DayOfWeek ger dig detta datums dag i veckan, och utifrån det så kan du ju bara lägga till - dra bort dagar för att räkna fram de andra dagarna i veckan...
Här kommer lite kod som jag skrivit för längesedan som kanske kan vara till lite hjälp.
/// <summary>
/// Gets the weeknumber from a specified date, using the threads culturinformation
/// to find out weekrule and firstday of week
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static int GetWeekFromDate(DateTime dateTime)
{
//-- Declaration
CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
Calendar calendar = cultureInfo.Calendar;
//-- Get the week of this date
return calendar.GetWeekOfYear(dateTime, cultureInfo.DateTimeFormat.CalendarWeekRule, cultureInfo.DateTimeFormat.FirstDayOfWeek);
}
/// <summary>
/// Gets the first date in a specfied week
/// </summary>
/// <param name="week"></param>
/// <param name="year"></param>
/// <returns></returns>
public static DateTime GetFirstDateInWeek(int weekOfYear, int year)
{
//-- Declaration
CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
Calendar calendar = cultureInfo.Calendar;
//-- Create our temporary date
DateTime dt = calendar.AddWeeks(new DateTime(year, 1, 1), weekOfYear - 1);
//-- Remove a day until we hit the week that is before the one we got.
while (calendar.GetWeekOfYear(dt, cultureInfo.DateTimeFormat.CalendarWeekRule, cultureInfo.DateTimeFormat.FirstDayOfWeek) == weekOfYear)
dt = dt.AddDays(-1);
//-- add one day to hit the week we want to check for
return dt.AddDays(1);
}
- M