如何以整数格式获取一周中的日期?我知道 ToString 只会返回一个字符串。
DateTime ClockInfoFromSystem = DateTime.Now;
int day1;
string day2;
day1= ClockInfoFromSystem.DayOfWeek.ToString(); /// it is not working
day2= ClockInfoFromSystem.DayOfWeek.ToString(); /// it gives me string
如何以整数格式获取一周中的日期?我知道 ToString 只会返回一个字符串。
DateTime ClockInfoFromSystem = DateTime.Now;
int day1;
string day2;
day1= ClockInfoFromSystem.DayOfWeek.ToString(); /// it is not working
day2= ClockInfoFromSystem.DayOfWeek.ToString(); /// it gives me string
使用
day1 = (int)ClockInfoFromSystem.DayOfWeek;
day1 = (int)(ClockInfoFromSystem.DayOfWeek + 6) % 7
。 - Kevin Gosseint day = (int)DateTime.Now.DayOfWeek;
一周的第一天是星期日(值为零)
如果您想将一周的第一天设置为星期一,并使用整数值1表示星期一,整数值7表示星期日
int day = ((int)DateTime.Now.DayOfWeek == 0) ? 7 : (int)DateTime.Now.DayOfWeek;
day1= (int)ClockInfoFromSystem.DayOfWeek;
获取枚举类型(例如DayOfWeek)的整数值并将其作为字符串返回的正确方法是:
DayOfWeek.ToString("d")
使用以下方法获取星期一的整数值为1,星期日的整数值为7
int day = ((int)DateTime.Now.DayOfWeek + 6) % 7 + 1;请注意:以上内容为代码示例,不应进行解释或修改。
试试这个。它会很好地工作:
int week = Convert.ToInt32(currentDateTime.DayOfWeek);
正确答案确实是获取int值的正确答案。
但是,如果你只是想检查是否是星期日...考虑使用以下代码,而不是强制转换为int。这样可以提供更好的可读性。
if (yourDateTimeObject.DayOfWeek == DayOfWeek.Sunday)
{
// You can easily see you're checking for sunday, and not just "0"
}
易读性很重要。
如果您需要一个整数:
int day1 = (int)ClockInfoFromSystem.DayOfWeek;
string daystr = $"{(int)ClockInfoFromSystem.DayOfWeek}"; // Unambiguous string of int.
不要使用推荐的ToString转换,因为大多数程序员都需要查找确认它是整数的字符串而不是月份的日期。真的吗,微软?
string daystr = ClockInfoFromSystem.DayOfWeek.ToString("d"); // Whaa? Horrible! Don't do this.
要更改一周的开始日期,需要加上距离星期日的天数模7。从星期日开始向后计算天数,例如:从星期日往前数1天是星期六,往前数2天是星期五,以此类推。
int satStart = (int)(ClockInfoFromSystem.DayOfWeek + 1) % 7; // Saturday start
int monStart = (int)(ClockInfoFromSystem.DayOfWeek + 6) % 7; // Monday start
DateTime currentDateTime = DateTime.Now;
int week = (int) currentDateTime.DayOfWeek;
ToString()
,那么您为什么不期望得到字符串呢? - Brian Rasmussen