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

  • Britec09

    Britec09

    4 Mart 2009
  • graham025

    graham025

    25 NİSAN 2006
  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008