发布网友 发布时间:2022-04-22 18:47
共3个回答
热心网友 时间:2023-10-25 05:10
#include <stdio.h>
#include <time.h>
int main()
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "当前系统时间: %s", asctime (timeinfo) );
return 0;
}
说明:
time_t // 时间类型(time.h 定义)
struct tm { // 时间结构,time.h 定义如下:
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
}
time ( &rawtime ); // 获取时间,以秒计,从1970年1月一日起算,存于rawtime
localtime ( &rawtime ); //转为当地时间,tm 时间结构
asctime() // 转为标准ASCII时间格式:
//就是直接打印tm,tm_year 从1900年计算,所以要加1900,月tm_mon,从0计算,所以要加1
热心网友 时间:2023-10-25 05:10
第一次开机时,把时间存放到文件 my_time.txt 里。
第2次开机,检查文件是否存在,文件不存在是第一次开机,文件存在是第2次开机。
第2次开机时,把时间从文件里读出来,同现在时间比较。
记录的时间差是秒。
你比较的 14,16 若是 分钟,要 乘 60 ,是小时 要乘 3600。
-----------------
删除文件后,第一次 跑程序,算第一次开机。
----------------
完整程序(MS VC++ 6.0 编译器)
#include <io.h>
#include <stdio.h>
#include <time.h>
main(){
time_t t0,t1,dif;
FILE *fp;
char namein[80]="my_time.txt";
if( access( namein, 0 ) != -1 ) {
// file exists
fp=fopen("my_time.txt","r");
fscanf(fp,"%x",&t0);
fclose(fp);
t1 = time (NULL);
dif = t1-t0;
printf("dt=%d seconds\n",dif);
if (dif > 14*60 && dif < 16*60) printf("--pass--\n"); else printf("--fail--\n");
} else {
// not exist
fp=fopen(namein,"w");
t0 = time (NULL);
fprintf(fp,"%x\n",t0);
fclose(fp);
}
return 0;
}追问非常感谢!!但两个问题不懂
1. 能不能把时间循环比较,例如第二次读取的和第一次比较,第三次读取的和第二次比较,以此类推。 现在的程序貌似是存下第一次的之后以后每次都和第一次比较。
2. 能不能将显示的fail 数字化,例如有fail一次显示fail 1 , 五次则计fail 5.
真心感谢加分!!
追答你的目的是比较2次开机,成功或fail 判断后 要采取什么行动。
如果你的目的是比较 相邻2次开机,那么,在输出 成功失败以后加一段:
fp=fopen("my_time.txt","w"); // 作为写再次打开文件
fprintf(fp,"%x\n",t1); //写 t1
fclose(fp); // 关文件。
这样文件里的时间就是新时间。用作下次开机比较。
---
fail 数字化,你可以记录在文件 里。
第一次开机 fprintf(fp,"%x 0\n",t0); 多写1个0, 作为第二个数据。
第二次开机 fscanf(fp,"%x %d",&t0, &fa); 除了读时间,再读 一个整型量 fa
后续开机:
fp=fopen("my_time.txt","w"); // 作为写再次打开文件
fprintf(fp,"%x\n",t1); //写 t1
if (dif 16*60) fprintf(fp,"%d\n",fa+1); // 写新的失败次数
else fprintf(fp,"%d\n",fa); // 写回老的失败次数
热心网友 时间:2023-10-25 05:11
#include <time.h>
#include <stdio.h>
void main()
{
time_t t = time(0);
char tmp[];
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );
puts( tmp );
return 0;
}
是否可以解决您的问题?