检测系统日期是否发生变化

检测系统日期是否发生变化 【应用场景】1、日志轮转: 检测到日期变化时,自动关闭旧日志文件并创建新文件,实现按天分割日志。2、每日任务触发: 用于在每天第一次检测到日期变更时,精确触发发送报告或重置配额等定时任务。3、授权检查: 在日期变更时,重新验证按天计费的软件许可证或功能授权是否依然有效。4、游戏每日奖励: 用于在新的一天到来时,重置玩家的每日签到、任务或体力等计数器。5、数据归档: 根据日期变化,自动将前一天的临时数据移至历史归档区或执行过期数据清理。6、UI更新: 当日期改变时,即时刷新桌面小工具或系统托盘图标上显示的日期。提供window版本、C++11版本的2个函数实现,如下:bool MyUtil::DateHasChanged_Win() { SYSTEMTIME cur_st = { 0 }; ::GetLocalTime(cur_st); static SYSTEMTIME last_st = { 0 }; if (last_st.wYear == 0) { // 首次调用:只记录当前时间,不判定日期变更 last_st = cur_st; return false; } else if (cur_st.wYear != last_st.wYear || cur_st.wMonth != last_st.wMonth || cur_st.wDay != last_st.wDay) { last_st = cur_st;