Hej. Din metod: Hej och Tack! > Vet inte riktigt hur man skall hantera om en vecka tillhör två månader. Antar att det finns regler runt detta. (??)Månadsnummer från år, vecka.
Här kommer en nöt för er att knäcka. Jag lyckas inte.
Gillar inte datumberäkningar.
Har alltså veckonummer och år och vill ha fram vilken månad denna vecka tillhör.
Vet inte riktigt hur man skall hantera om en vecka tillhör två månader. Antar att det finns regler runt detta. (??)
int week = 27;
int year = 2004;
int month = GetMonth(year, week);
Snälla hjälp!!
Sv: Månadsnummer från år, vecka.
<code>
using System.Globalization;
private int GetMonth(int year, int week)
{
DateTime dt = new DateTime(year, 1, 1);
Calendar c = CultureInfo.InvariantCulture.Calendar;
dt = c.AddWeeks(dt, week);
int month = c.GetMonth(dt);
return month;
}
</code>
Man skulle även kunna skriva det på en rad; inte så lättläst.
<code>
return CultureInfo.InvariantCulture.Calendar.GetMonth(CultureInfo.InvariantCulture.Calendar.AddWeeks(new DateTime(year, 1, 1), week));
</code>
Returnerar månaden från första dagen på veckan. Tog lite tid att klura ut :)
/AndréSv: Månadsnummer från år, vecka.
Naturligtvis... Så kan kan man ju göra :-)
Men borde inte rätt kod vara...
<code>
private int GetMonth(int year, int week)
{
DateTime dt = new DateTime(year, 1, 1);
Calendar c = CultureInfo.InvariantCulture.Calendar;
dt = c.AddWeeks(dt, week - 1);
dt = c.AddDays(dt, DayOfWeek.Monday - dt.DayOfWeek);
return c.GetMonth(dt);
}
</code>
...för att göra kollen på ett datum i rätt vecka och som är en måndag?Sv: Månadsnummer från år, vecka.
Nej, det finns inga regler för detta. Veckorna tillhör inte någon månad, utan tillhör istället ett år, eftersom de är numrerade efter det.
Du får helt enkelt göra egna regler, till exempel vilken månad första dagen i veckan tillhör, eller vilken månad flest av dagarna i veckan tillhör (i praktiken vilken månad torsdagen tillhör).