我需要在9月5日以后每天执行一个 Action ,这个程序是我写的
#include <windows.h>
int main()
{
SYSTEMTIME time;
GetLocalTime(&time);
if((time.wMonth = 9 && time.wDay >= 6) || time.wMonth > 9)
{
//perform action
MessageBox(GetForegroundWindow(), "Action performed. Month is " + std::to_string((long long)wMonth), "Alarm!", MB_OK | MB_SYSTEMMODAL);
}
}
我运行了这个程序并显示了消息框。但今天是 8 月 22 日,我检查了我电脑的时钟。我做错了什么?
引用 SYSTEMTIME
更新:
写完这个问题后,我检查了 wMonth 和 wDay 的值,它们是 1 和 22,即 Jan 22。
似乎是一个错误。我该怎么做才能获得正确的月份?
最佳答案
if((time.wMonth = 9 ...
需要:
if((time.wMonth == 9 ...
^^^^
如果你反转你的测试(许多 C++ 程序员都这样做),编译器会发出一个错误:
if((9 = time.wMonth ... // error !
这是一种捕捉这种频繁打字错误的方法。
关于c++ - 9 月 5 日之后每天执行一个 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25441319/