首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

要实现下面的效果,有更简洁的代码吗?解决思路

2012-04-06 
要实现下面的效果,有更简洁的代码吗?C/C++ code#include windows.hint main(){SYSTEMTIME dateGetLocal

要实现下面的效果,有更简洁的代码吗?

C/C++ code
#include <windows.h>int main(){  SYSTEMTIME date;   GetLocalTime(&date);  if(date.wYear >= 2012 && date.wMonth >= 2 && date.wDay>=7)     DeleteFile ("d:\\1.txt");  return 0;}


检测当前时间 如果 >= 2012.2.7 执行程序 ,但不排除特殊原因 有的时候 电脑好几天不开机 假如2012.3.2 开机了 上面的代码就不起作用了 。 我换成了下面的,没测试 我想应该可以了 但感觉很繁琐,有没有更短的代码来判断?

if ((date.wYear >= 2012 && date.wMonth >= 2 && date.wDay >= 7) || (date.wYear >= 2012 && date.wMonth > 2) )

[解决办法]
if(date.wYear >= 2012 && date.wMonth >= 2 && date.wDay>=7) 这个条件有bug,假如2013年2月2号,貌似就不执行了吧。可以换成其他的时间表示方式。比如什么time_t等等。
[解决办法]
用struct tm 和time_t就可以了

[解决办法]
你可以这样
 long number=date.wYear*100+date.wMonth*10+date.wDay;
if(long>201227)
{
  
}
[解决办法]
C/C++ code
#include <windows.h>int main(){  SYSTEMTIME date;   GetLocalTime(&date);  int tmp_num = date.wYear * 10000 + date.wMonth * 100 + date.wDay;  if(tmp_num > 20120207)  DeleteFile ("d:\\1.txt");  return 0;}
[解决办法]
用CTime
[解决办法]
探讨

用struct tm 和time_t就可以了

[解决办法]
探讨
楼上的说的对哦。。谢谢了 刚才怎么没想到呢。。

我改成下面的应该可以了吧
if ((date.wYear >= 2012 &amp;&amp; date.wMonth >= 2 &amp;&amp; date.wDay >= 7) || (date.wYear >= 2012 &amp;&amp; date.wMonth > 2) || (date.wYear > 2012) )

……

热点排行