运算符 <= 不能应用于字符串和字符串类型的操作数

本文关键字:字符串 类型 操作数 应用于 不能 运算符 | 更新日期: 2023-09-27 18:33:17

if (Convert.ToDateTime(ModCommon.sqldate(ModCommon.SetDate(JoinDate.Text))).ToString("yyyyMMdd") <= "19000101")
{
    dtpJoinDate.Text = "";
}

我不知道我的代码出了什么问题。它给出了错误.."运算符 <= 不能应用于字符串和字符串类型的操作数"

运算符 <= 不能应用于字符串和字符串类型的操作数

错误说明了所有事情。您正在将日期转换为字符串并检查它是否小于任何其他字符串。你能回答:如果"ABC"<="abc"

用:

DateTime dt = DateTime.ParseExact("19000101", "yyyyMMdd", CultureInfo.InvariantCulture);
if (Convert.ToDateTime(ModCommon.sqldate(ModCommon.SetDate(JoinDate.Text))) <= dt)
{
    dtpJoinDate.Text = "";
}
不能对

字符串使用<=运算符。因为类不会重载String运算符<=。除运算符重载外,此运算符只能与数值类型和枚举类型一起使用。

我假设您尝试比较您的DateTime值。如果是这样,您可以比较喜欢;

DateTime dt = new DateTime(1900, 1, 1);
if(Convert.ToDateTime(ModCommon.sqldate(ModCommon.SetDate(JoinDate.Text))) <= dt)
{
     dtpJoinDate.Text = "";
}

在测试之前,请尝试将字符串日期转换为日期时间、双精度或整数。

DateTime.Parse 

可能有用