webForumDet fria alternativet

Lista veckodagar

1 svar · 367 visningar · startad av Kuckel

KuckelMedlem sedan jan. 2002104 inlägg
#1

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
#2

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

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)