SORU
14 HAZİRAN 2011, Salı


Datetime - haftaya Salı Olsun

Nasıl gelecek Salı tarihinden alabilir miyim? PHP strtotime('next tuesday'); kadar basit. Nasıl bir şeye benzer elde edebilirsiniz .NET

CEVAP
14 HAZİRAN 2011, Salı


Gibi oldum belirtildiği açıklamalarda, orada çeşitli şeyler yapabilirsin demek "bir sonraki Salı", ama bu kod verir "önümüzdeki Salı oluşur, ya da bugün oluyor zaten Salı":

DateTime today = DateTime.Today;
// The (...   7) % 7 ensures we end up with a value in the range [0, 6]
int daysUntilTuesday = ((int) DayOfWeek.Tuesday - (int) today.DayOfWeek   7) % 7;
DateTime nextTuesday = today.AddDays(daysUntilTuesday);

Eğer "haftanın bir süre önce," eğer Salı kullanabilirsiniz: . vermek istiyorsanız

// This finds the next Monday (or today if it's Monday) and then adds a day... so the
// result is in the range [1-7]
int daysUntilTuesday = (((int) DayOfWeek.Monday - (int) today.DayOfWeek   7) % 7)   1;

... ya da orijinal formülü kullanabilirsin ama yarından itibaren:

DateTime tomorrow = DateTime.Today.AddDays(1);
// The (...   7) % 7 ensures we end up with a value in the range [0, 6]
int daysUntilTuesday = ((int) DayOfWeek.Tuesday - (int) tomorrow.DayOfWeek   7) % 7;
DateTime nextTuesday = tomorrow.AddDays(daysUntilTuesday);

EDİT: Sadece bu güzel ve çok yönlü:

public static DateTime GetNextWeekday(DateTime start, DayOfWeek day)
{
    // The (...   7) % 7 ensures we end up with a value in the range [0, 6]
    int daysToAdd = ((int) day - (int) start.DayOfWeek   7) % 7;
    return start.AddDays(daysToAdd);
}

Değerini almak için "bugün ya da önümüzdeki 6 gün sonra":

DateTime nextTuesday = GetNextWeekday(DateTime.Today, DayOfWeek.Tuesday);

Değerini almak için "bir sonraki Salı bugün hariç":

DateTime nextTuesday = GetNextWeekday(DateTime.Today.AddDays(1), DayOfWeek.Tuesday);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kenneth Håkonsen

    Kenneth Håk

    13 Mart 2011
  • MugenPowerBatteries

    MugenPowerBa

    8 EKİM 2010
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012