| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1326 人关注过本帖
标题:有什么办法可以动态设置系统日期吗?
只看楼主 加入收藏
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
结帖率:99.55%
收藏
 问题点数:0 回复次数:4 
有什么办法可以动态设置系统日期吗?
在程序中改变系统日期可用外部命令run date YYYY-MM-DD来实现,但其中的年月日必须是字符,而不能是字符串变量。请问如何才能用变量来设置系统日期呢?
我先将年月日转换为字符串变量,然后用括号()或宏替换&都无法执行。下列办法都已经试过:
Cdate = str(year(date()),4) + "-" + alltri(str(month(date()))) + "-" + alltri(str(day(date())))
run date &Cdate

Cdate = str(year(date()),4) + "-" + alltri(str(month(date()))) + "-" + alltri(str(day(date())))
run date (Cdate)

Cdate = "date " + str(year(date()),4) + "-" + alltri(str(month(date()))) + "-" + alltri(str(day(date())))
run &Cdate

Cdate = "run date " + str(year(date()),4) + "-" + alltri(str(month(date()))) + "-" + alltri(str(day(date())))
&Cdate
搜索更多相关主题的帖子: 动态 系统 办法 
2008-03-10 17:38
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
好像有一个API函数可以修改系统日期和时间,楼主查一查。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2008-03-10 20:18
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
有一个函数可以调用系统的成年历,我一时忘记了,您查一下。调用后好像在Windows下面詷日期一样。

两人行已有我师……
2008-03-10 22:06
baichuan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:37
帖 子:953
专家分:589
注 册:2006-3-13
收藏
得分:0 
也许有用?
Win32   API的SetSystemTime   API函数来设置系统时间:   
   
  using   System;   
  using   System.Runtime.InteropServices;   
   
  [StructLayout(LayoutKind.Sequential)]   
  public   struct   SystemTime   
  {   
  public   ushort   wYear;   
  public   ushort   wMonth;   
  public   ushort   wDayOfWeek;   
  public   ushort   wDay;   
  public   ushort   wHour;   
  public   ushort   wMinute;   
  public   ushort   wSecond;   
  public   ushort   wMiliseconds;   
  }   
   
  public   class   Win32   
  {   
  [DllImport("Kernel32.dll")]   
  public   static   extern   bool   SetSystemTime(   ref   SystemTime   sysTime   );   
  [DllImport("Kernel32.dll")]   
  public   static   extern   void   GetSystemTime(ref   SystemTime   sysTime);   
  }   
   
  public   class   TestPInvoke   
  {   
  public   static   void   Main()   
  {   
  SystemTime   sysTime   =3D   new   SystemTime();   
   
  sysTime.wYear   =   2002;   
  sysTime.wMonth=1;   
  sysTime.wDay=1;   
  sysTime.wDayOfWeek=1;   
  sysTime.wHour=1;   
  sysTime.wMinute=1;   
  sysTime.wSecond=1;   
  sysTime.wMiliseconds=1;   
   
  Win32.SetSystemTime(ref   sysTime);   
  }   
  }

2008-03-11 08:30
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
谢谢几位版主热情相助!
我用下面的方法已经实现了:
wdt = "Run date " + STR(YEAR(wjd),4) + "-" + PADL(ALLTRIM(STR(MONTH(wjd))),2,"0") + "-" + PADL(ALLTRIM(STR(DAY(wjd))),2,"0")

&wdt
原来直接用字符时可以不要月日的前导零,如:
run date 2008-1-1
而用字符变量时则一定要月日的前导零,如:
wdt = "run date 2008-01-01"
&wdt
又获得了一条经验。
收到的鲜花
  • baichuan2008-03-12 07:45 送鲜花  5朵   附言:我很赞同

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2008-03-11 09:05
快速回复:有什么办法可以动态设置系统日期吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019337 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved