有什么办法可以动态设置系统日期吗?
在程序中改变系统日期可用外部命令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
也许有用?
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);
}
}
谢谢几位版主热情相助!
我用下面的方法已经实现了: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
又获得了一条经验。
页:
[1]
