Svish Skrevet 22. oktober 2008 Del Skrevet 22. oktober 2008 (endret) Hvordan finner en det? Eneste relaterte jeg finner i .NET Framework er en funksjon som finner ukenummeret til en dato: CultureInfo.CurrentCulture.Calendar.GetWeekOfYear( date, CultureInfo.CurrentCulture.DateTimeFormat.CalendarWeekRule, CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek); Men jeg trenger en som går andre veien, av typen: public static DateTime GetFirstDayOfWeek(int Year, int Week) { // What to do here?? } Men klarer ikke helt å finne ut hvordan en best og enklest og mest effektivt kan finne den datoen... en måte er jo å loope igjennom datoer til man finner den som har riktig ukenummer. Men det er jo ikke helt effektivt, pluss at en har det problemet med at uke 1 for eksempel ikke alltid starter det året... Noen som har noen smarte ideer? Endret 22. oktober 2008 av Svish Lenke til kommentar
GeirGrusom Skrevet 22. oktober 2008 Del Skrevet 22. oktober 2008 (endret) Kan du ikke bare gå bakeover til du finner første mandagen da? eller Date - DayOfWeek Endret 22. oktober 2008 av GeirGrusom Lenke til kommentar
Svish Skrevet 22. oktober 2008 Forfatter Del Skrevet 22. oktober 2008 (endret) Fant til slutt ut av det etter å ha lest litt rundt forbi og kombinert diverse metoder fra diverse språk: public static DateTime GetFirstDayOfWeek(int Year, int Week) { // Set start date to January 4 (Always in week 1. At least between 1900 to 2100 after a quick test...) DateTime a = new DateTime(Year, 1, 4); // "Jump" to week number a = a.AddDays((Week - 1) * 7); // Back up one day until we reach first day of week while (a.DayOfWeek > CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek) a = a.AddDays(-1); // Return the date return a; } (synes forøvrig at diskusjon.no kunne fått seg noen penere CODE tags med litt syntax farging osv. Kanskje noen spesifikke for diverse språk ) Endret 22. oktober 2008 av Svish Lenke til kommentar
Manfred Skrevet 22. oktober 2008 Del Skrevet 22. oktober 2008 Hvorfor kjører du en løkke? Kan du ikke bare subtracte DayOfWeek?? Lenke til kommentar
Svish Skrevet 22. oktober 2008 Forfatter Del Skrevet 22. oktober 2008 Godt spørsmål... jo, det er vel i grunnen meget mulig at en kan... men hva trekker en da fra og fra hva? Lenke til kommentar
HDSoftware Skrevet 24. oktober 2008 Del Skrevet 24. oktober 2008 Godt spørsmål... jo, det er vel i grunnen meget mulig at en kan... men hva trekker en da fra og fra hva? Du har jo fått svar på dette noen ganger nå ;-) SomeDate - SomeDate.DayOfWeek = MANDAG Men vær obs på at vi i "furet værbitt" starter uken på mandag, mens andre steder på kloden starter på søndag. Jeg hakke studert koden du har presentert så det kan hende du allerede har tatt høyde for det. I Clarion så gjør jeg det slik. Kansje man kan gjhøre det på samme måte i C# DayOfWeek = GivenDate % 7 ! Modulus operasjon if(DayOfWeek = 0) !Vi har en søndag. Mandag = GivenDate - 6 else Mandag = GivenDate - DayOfWeek + 1 end!If Jeg kan bruke moduluis fordi en DATE i Clarion er en LONG som forteller hvor mange dager det har gått siden 01.01.18ett-eller-annet Går ut ifra at du kan gjøre det på nøyaktig samme måte i .NET Lenke til kommentar
Svish Skrevet 24. oktober 2008 Forfatter Del Skrevet 24. oktober 2008 ja det er jo nettopp det at en må ta hensyn til kulturer som har søndag som første dag i uka. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå