尝试将 DateTime 转换为 int

Trying to convert DateTime into int

所以我一直在尝试在同一个 if 语句中同时使用日期时间和 int。 我的代码是这样的:

public int wantedHours, wantedMinutes;
public int sysHour = System.DateTime.Now.Hour;
public int sysMinutes = System.DateTime.Now.Minute;

void Update()
{
    if (sysHour == wantedHours && sysMinutes == sysMinutes)
    {
        sendTheNotif == true;
    } else
    {
        sendTheNotif == false;
    }
}

但它不起作用。统一给我这个错误:

error CS0201: Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement

整数设置正确。 您在抛出错误的 if 语句中使用了相等运算符 建议阅读 microsoft doc

试试这个

(请注意,您正在 if 语句中检查 sysMinutes == sysMinutes 之间的相等性,这是您想要做的吗?)

public int wantedHours, wantedMinutes;
public int sysHour = System.DateTime.Now.Hour;
public int sysMinutes = System.DateTime.Now.Minute;

void Update()
{
    if (sysHour == wantedHours && sysMinutes == sysMinutes)
    {
        sendTheNotif = true;
    } else
    {
        sendTheNotif = false;
    }
}

在您的代码中,您没有为 wantedHours 和 wantedMinutes 赋值。 如果在比较之前无法在代码中更改其值,则 sysMinutes 将始终等于 sysMinutes。

if (sysHour == wantedHours && sysMinutes == sysMinutes)

是主要问题。当您使用 == 比较变量时,这意味着如果它在类型和值上相等,则它应该评估为真。 所以 wantedHours 没有根据上面的代码块分配任何值。 并且 sysMinutes 始终等于 sysMinutes。

你必须改用 wantedTime

var sysTime = System.DateTime.Now;

If( (int)wantedTime.Subtract(sysTime).TotalMinutes ==0)  sendTheNotif = true;
else sendTheNotif = false;