使用星期几获取日期

时间:2013-04-08 09:16:10

标签: c# .net datetime datetime-format

我在使用星期几查找日期时遇到问题。

例如:我的过去日期可以说,

Date date= Convert.TodateTime("01/08/2013");

2013年1月8日星期二是星期二。

现在我想要本周的星期二约会。我怎么做。

注意:过去的日期是动态的。它会在每个循环中发生变化。

3 个答案:

答案 0 :(得分:10)

您可以使用枚举DayOfWeek

  

DayOfWeek枚举表示日历中的星期几   每周七天。这个常量的值   枚举范围从DayOfWeek.Sunday到DayOfWeek.Saturday。如果   强制转换为整数,其值范围为零(表示   DayOfWeek.Sunday)至6(表示DayOfWeek.Saturday)。

我们可以使用转换为整数来计算与同一工作日当前日期的差异

DateTime dtOld = new DateTime(2013,1,8);
int num = (int)dtOld.DayOfWeek;
int num2 = (int)DateTime.Today.DayOfWeek;
DateTime result = DateTime.Today.AddDays(num - num2);

这似乎也适合创建扩展方法

public static class DateTimeExtensions
{
    public static DateTime EquivalentWeekDay(this DateTime dtOld)
    {
        int num = (int)dtOld.DayOfWeek;
        int num2 = (int)DateTime.Today.DayOfWeek;
        return DateTime.Today.AddDays(num - num2);
    }
}   

现在你可以用

来调用它
DateTime weekDay = Convert.ToDateTime("01/08/2013").EquivalentWeekDay();

答案 1 :(得分:1)

我可能有点迟到了,但我的解决方案非常相似:

DateTime.Today.AddDays(-(int)(DateTime.Today.DayOfWeek - DayOfWeek.Tuesday));

这将是当周的星期二,其中发现星期二是主要目标(我可能误解了这个问题)。

答案 2 :(得分:0)

你可以使用这个....

public static void Main()
{ 
    //current date  
    DateTime dt = DateTime.UtcNow.AddHours(6);

    //you can use it custom date  
    var cmYear = new DateTime(dt.Year, dt.Month, dt.Day);

    //here 2 is the day value of the week in a date
    var customDateWeek = cmYear.AddDays(-2); 
    Console.WriteLine(dt);
    Console.WriteLine(cmYear);
    Console.WriteLine("Date: " + customDateWeek);
    Console.WriteLine();  
    Console.ReadKey();
}