我正在将旧版VB6项目迁移到C#。
我想从下面的表达式中获取C#中的等价物:
Weekday(Date, vbMonday)
我知道C#中有一个函数:
int dayOfWeek = (int)DateTime.Today.DayOfWeek;
但是如何指定一周的第一天是星期一,然后函数DayOfWeek将其考虑在内并返回正确的值?
我需要获取一个int值。
答案 0 :(得分:2)
您可以致电CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek
来获取一周的第一天,但我认为您可以不这样做。
Weekday
函数在星期一返回1,就像DayOfWeek
一样。唯一的特例是Sunday,.NET返回0
,而VB返回7.
做数学:
int dayOfWeek = DateTime.Today.DayOfWeek == DayOfWeek.Sunday
? 7
: (int)DateTime.Today.DayOfWeek;
答案 1 :(得分:0)
DateTime dateValue = new DateTime(2008, 6, 11);
Console.WriteLine((int) dateValue.DayOfWeek);
//该示例显示以下输出: // 3
Console.WriteLine(dateValue.ToString("dddd"));
//该示例显示以下输出: //星期三
Console.WriteLine(dateValue.ToString("dddd"));
//该示例显示以下输出: //星期三