SORU
19 Mart 2009, PERŞEMBE


Hafta sayısını hesaplamak tarih

Herkes haftanın ilk günü (Pazartesi burada Avrupa) almak için kolay bir yol biliyorum. Yıl ve hafta numarasını biliyorum? C bunu yapmak için gidiyorum#.

Şimdiden teşekkürler.

CEVAP
30 Ocak 2012, PAZARTESİ


@@RobinAndersson düzeltmeyi bile HenkHolterman tarafından çözümü ile ilgili sorunlar vardı.

ISO 8601 standardı okuma güzelce sorunu giderir. Hedef olarak ilk Perşembe kullanın ve Pazartesi değil. Aşağıdaki kod 2009 53 Hafta için de çalışır.

public static DateTime FirstDateOfWeekISO8601(int year, int weekOfYear)
{
    DateTime jan1 = new DateTime(year, 1, 1);
    int daysOffset = DayOfWeek.Thursday - jan1.DayOfWeek;

    DateTime firstThursday = jan1.AddDays(daysOffset);
    var cal = CultureInfo.CurrentCulture.Calendar;
    int firstWeek = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

    var weekNum = weekOfYear;
    if (firstWeek <= 1)
    {
        weekNum -= 1;
    }
    var result = firstThursday.AddDays(weekNum * 7);
    return result.AddDays(-3);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Phlearn Photoshop and Photography Tutorials

    Phlearn Phot

    11 EKİM 2011
  • StalkerJS

    StalkerJS

    15 HAZİRAN 2010
  • Yo Mama

    Yo Mama

    18 EYLÜL 2005