C++怎么设置时间?
发布网友
发布时间:2022-04-22 23:42
我来回答
共4个回答
热心网友
时间:2023-10-08 21:38
SetLocalTime
SetLocalTime();
作用: 设置当前本地时间及日期。
语法:BOOL WINAPI SetLocalTime( _In_ constSYSTEMTIME *lpSystemTime);
参数: lpSystemTime 一个SYSTEMTIME结构的指针,包含了新的本地日期和时间。
SYSTEMTIME 结构wDayOfWeek成员被忽略。
返回值: 如果函数调用成功,则返回值为非零值。
如果函数失败,返回值是零。 为了得到扩展的错误信息,调用GetLastError函数 。
备注:
调用进程必须有权限的SE_SYSTEMTIME_NAME。 默认情况下禁用此权限。 SetLocalTime功能使SE_SYSTEMTIME_NAME的权限,然后再更改本地时间返回前和禁用的权限。 了解更多信息,请参阅运行特权 。
系统采用内部UTC。 因此,当你调用SetLocalTime,该系统采用当前时区信息进行转换,包括夏令时设置。 请注意,该系统采用夏令时设置当前时间,而不是设置新的时间。 因此,为了确保正确的结果,第二次调用SetLocalTime的第一次调用,现在已经更新夏令时设置。
SYSTEMTIME结构:
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
这个结构体是系统自定的,可以直接声明变量来使用
举例:
SYSTEMTIME curtime;//声明结构体变量;
curtime.wYear = 2013;//curtime.可以设置结构体内的值.
curtime.wMonth = 5;
curtime.wHour = 5;
curtime.wMinute = 10;
curtime.wSecond = 20;
//对结构体变量curtime的各项值分别赋值
SetLocalTime(&curtime);
//然后调用SetLocalTime设置时间.
追问如果我用time_t类型的参数,怎么实现呢?
热心网友
时间:2023-10-08 21:38
通过第一个参数的修改时间,修改第二个文件参数的修改时间;
参考如下:
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
void main( int argc,char* argv[] )
{
if(argc<2)
{
cout<<"No arguments"<<endl;
exit(1);
}
string file1,file2;
file1=argv[1];
file2=argv[2];
struct stat buf1;
struct stat buf2;
int result1,result2;
//获得文件状态信息
result1 =stat( file1.c_str(), &buf1 );
result2 =stat( file2.c_str(), &buf2 );
//显示文件状态信息
if( result1 != 0 )
perror( "显示文件状态信息出错" );
else
{
cout<<"最后修改日期1:"<<ctime(&buf1.st_mtime);
}
//显示文件状态信息
if( result1 != 0 )
perror( "显示文件状态信息出错" );
else
{
cout<<"最后修改日期2:"<<ctime(&buf2.st_mtime);
}
buf2.st_mtime=buf1.st_mtime;
cout<<"最后修改日期3:"<<ctime(&buf2.st_mtime);
}
热心网友
时间:2023-10-08 21:39
struct tm tmtest;
time_t result;
tmtest.tm_hour=23;
tmtest.tm_min=59;
tmtest.tm_sec=59;
result=mktime(&tmtest);
热心网友
时间:2023-10-08 21:40
#include<iostream.h>
#include<windows.h>
class clock
{
private:
int hour;
int minute;
int second;
public:
clock(int h,int m,int s);
void run_time(int s);
void show_time();
};
clock::clock(int h,int m,int s)
{
hour=h;
minute=m;
second=s;
}
void clock::show_time()
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void clock::run_time(int s)
{
for(int i=0;i<s;i++)
{
second++;
if(second==60)
{
minute++;
second=0;
if(minute==60)
{
hour++;
minute=0;
if(hour==24)
{
hour=0;
}
}
}
system("cls");
show_time();//函数调用
Sleep(1000);//该句的头文件是#include<windows.h>,沉睡效果,可不要
}
}
void main()
{
clock a(22,47,58);//初始时间
a.show_time();//输出
a.run_time(10);//补充的走时函数
}追问如果我用time_t类型的参数,怎么实现呢?