繁体   English   中英

使用月历来获取所选周的星期六日期值

[英]Get saturday date value from a selected week using a month calendar

我有点担心这个问题。 当我选择特定日期时,如何获得月历日历值。

例如:我在月历上选择了2月14日。 选择它后会有一个提示,其中包含星期六“2011年2月19日”或我选择的2月24日,提示将显示“2011年2月26日”。

在此输入图像描述

// This function will return the next saturday for a datetime
DateTime NextSaturday(DateTime now)
{
   while (now.DayOfWeek != DayOfWeek.Saturday)
      now = now.AddDays(1);
   return now;
}

UPDATE

差不多2年后,我想改变这个答案。

这些天我永远不会为一个class创建一个“实用功能”。 我现在总是“延伸”课程。 签名现在应该是DateTime.Next(DayOfWeek) 有关扩展的更多详细信息,请参见http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx

逻辑也错了。 如果now是星期六,那么它将始终返回当前日期。 我想大多数来电者都会期望它now返回+ 7天。 所以第一个变化是:

DateTime NextSaturday(DateTime now)
{
   do {
      now = now.AddDays(1);
   } while (now.DayOfWeek != DayOfWeek.Saturday)

   return now;
 }

然后将功能更改为与一周中的任何一天一起使用:

DateTime Next(DateTime now, DayOfWeek nextDay)
{
   do {
      now = now.AddDays(1);
   } while (now.DayOfWeek != nextDay)

   return now;
 }

现在“扩展”DateTime类以支持Next(DayOfWeek)

 namespace DateTime.Extensions
 {
   public static class DateTimeExtensions
   {
     public static DateTime Next(this DateTime now, DayOfWeek nextDay)
     {
        do {
          now = now.AddDays(1);
        } while (now.DayOfWeek != nextDay)

        return now;
      }
   }
 }
DateTime add = DateTime.Now; //From popup box
int add = (((int)selected.DayOfWeek) + 1;
if(add != 7) {
    selected = selected.AddDays(add);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM