[英]C#: DateTime.DayOfWeek to string comparison
这段代码是我正在尝试做的简化版本:
string day = Thursday;
DateTime dt = DateTime.Now;
if (day == dt.DayOfWeek)
{
// start the program
}
我需要从数据库中读取星期值,将其分配给字符串,然后将字符串与dt.DayOfWeek进行比较以检查程序是否应该执行。
我的错误是: “运算符'=='不能应用于'string'和'System.DayOfWeek'类型的操作数
任何人都知道如何比较字符串与DateTime.DayOfWeek值?
最简单的方法是将枚举转换为字符串:
if (day == dt.DayOfWeek.ToString())...
笔记:
day
到DayOfWeek
枚举可以避开字符串比较(及其相关的本地化/比较问题)。 DayOfWeek.Thursday
)并使用相应的String.Equals
方法。 Parse
将字符串转换为枚举,如其他答案所示: ((DayOfWeek)Enum.Parse(typeof(DayOfWeek), day)
使用Enum.Parse
获取Enum值:
if ((DayOfWeek)Enum.Parse(typeof(DayOfWeek), day) == dt.DayOfWeek)
如果你不确定它是否是有效值,那就是TryParse<T>
:
Enum val;
if (Enum.TryParse<DayOfWeek>(day, out val) && val == dt.DayOfWeek)
尝试DayOfWeek day = DayOfWeek.Thursday;
您可以使用Enum.TryParse<DayOfWeek>
:
string strDay = "Wednesday";
DayOfWeek day;
if (Enum.TryParse<DayOfWeek>(strDay, out day)
&& day == DateTime.Today.DayOfWeek)
{
// ...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.