Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用星期几获取日期_C#_.net_Datetime_Datetime Format - Fatal编程技术网

C# 使用星期几获取日期

C# 使用星期几获取日期,c#,.net,datetime,datetime-format,C#,.net,Datetime,Datetime Format,我在使用星期几查找日期时遇到问题 比如说,我已经过了约会 Date date= Convert.TodateTime("01/08/2013"); 2013年1月8日一周的第二天是星期二 现在我要本周的星期二。我怎么能做到 注意:过去的日期是动态的。它将在每个循环中更改。您可以使用枚举 DayOfWeek枚举表示日历中的一周中的某一天 每周七天。此字段中常量的值 枚举范围从星期天到星期六。如果 强制转换为整数,其值范围为零(表示 星期天)到六点(表示星期六) 我们可以使用到整数的转换来计算与同

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

比如说,我已经过了约会

Date date= Convert.TodateTime("01/08/2013");
2013年1月8日一周的第二天是星期二

现在我要本周的星期二。我怎么能做到


注意:过去的日期是动态的。它将在每个循环中更改。

您可以使用枚举

DayOfWeek枚举表示日历中的一周中的某一天 每周七天。此字段中常量的值 枚举范围从星期天到星期六。如果 强制转换为整数,其值范围为零(表示 星期天)到六点(表示星期六)

我们可以使用到整数的转换来计算与同一周的当前日期的差值

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();

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

DateTime.Today.AddDays(-(int)(DateTime.Today.DayOfWeek - DayOfWeek.Tuesday));
这将得到本周的星期二,找到星期二是主要目标(我可能误解了这个问题)。

你可以用这个

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();
}

只是想一想:如果你已经在正确的一天,你可以在这一天再加上几周,同时保持在同一天。因此,在日期上添加周数,直到到达当前周为止。是的。是否有任何内置方法可以做到这一点/
DateTime.AddDays(7)
是添加一周的选项。你可以把周数乘以7再加上。看,嘿,约翰,我得把它循环一下。有什么捷径吗?史蒂夫下面的答案可能是获得这个结果的最短途径。