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

  • Jose LviS el Bambino ( JLB )   LviSito

    Jose LviS el

    3 ŞUBAT 2008
  • AutoklubZAPRESIC

    AutoklubZAPR

    17 Mayıs 2011
  • Creavite

    Creavite

    8 Mart 2009