下面自我测试
- | 返回程序启动到现在的运行时间是函数
- | 将unix时间转化为字符时间
- | 将格林时间转化为字符时间
- | 将unix时间转化为格林时间
- | 获取unix时间
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/*
注意:
{
1:struct tm
{
int tm_sec; 秒,范围从 0 到 59
int tm_min; 分,范围从 0 到 59
int tm_hour; 小时,范围从 0 到 23
int tm_mday; 一月中的第几天,范围从 1 到 31
int tm_mon; 月份,范围从 0 到 11
int tm_year; 自 1900 起的年数
int tm_wday; 一周中的第几天,范围从 0 到 6
int tm_yday; 一年中的第几天,范围从 0 到 365
int tm_isdst; 夏令时
};
}
1;asctime()
{
作用:将tm结构体各部分的日历时间,转化为时间字符串! 用于采集到的时间数据赋值给tm结构体,并转化为字符串格式!
注意:tm的必要的成员是必须要赋值的,否则tm结构体的数据不完整,不能正常asctime()转化为字符串!
返回值:字符串指针!
}
2:clock()
{
作用:
当程序启动时,clock()返回值=0ms
随着程序进行,clock()能返回程序启动到现在的运行时间!
}
3:ctime()
{
1:与asctime()不同,ctime()将time()获取到的时间转化为字符串,而asctime()是将硬件采集到的tm结构体转化为时间字符串
2:返回的时间字符串放在time_t这个64bite长度的空间
}
4:difftime(end,start)
{
返回值:end与start的时间差,类型 = int
end与start由time()获取
}
5:gmtime()
{
作用:将time()获取的系统时间,拆分为tm结构!
注意:拆分后的时间是标准时间,不是时区的时间,如果需要打印当地时间,就需要加上时差!
}
6:localtime()
{
作用:将time()获取的系统时间,拆分为tm结构!
注意:拆分后的时间是当地时间,就不需要加上时差!
}
7:mktime()
{
作用:当tm结构体的一部分的值变化后,利用mktime()就可以将tm结构体所有部分相应的自动修改!
就不用一个个的手动修改了!
}
8:time()
{
返回值:返回距离1970-1-1 00:00:00 已经过去多少秒!
}
*/
void Time_Text1()
{
struct tm t;
t.tm_sec = 30;
t.tm_min = 30;
t.tm_hour = 12;
t.tm_mday = 15;
t.tm_mon = 6;
t.tm_year = 10;
t.tm_wday = 1;
printf("时间:%s", asctime(&t));
}
void Time_Text2()
{
clock_t Begin, End;
Begin = clock();
printf("\n程序运行到main函数用时:%ldms\n", Begin);
for (size_t i = 0; i < SIZE_MAX; i++)
{
}
End = clock();
printf("\nmain函数用时:%ldms\n",End-Begin);
}
void Time_Text3()
{
time_t Curtime;
time(&Curtime);
printf("当前时间:%s", ctime(&Curtime));
}
void Time_Text4()
{
time_t Begin,End;
time(&Begin);
for (size_t i = 0; i < SIZE_MAX; i++)
{
}
time(&End);
printf("主函数用时:%d s",(int)difftime(End, Begin));
}
void Time_Text5()
{
time_t Curtime;
struct tm *My_tm;
time(&Curtime);
My_tm = gmtime(&Curtime);
printf("当前时间->%d:%d", My_tm->tm_hour + 8, My_tm->tm_min);
}
void Time_Text6()
{
time_t Curtime;
struct tm* My_tm;
time(&Curtime);
My_tm = localtime(&Curtime);
printf("当前时间->%d:%d", My_tm->tm_hour, My_tm->tm_min);
}
void Time_Text7()
{
time_t Curtime;
struct tm* My_tm;
time(&Curtime);
My_tm = localtime(&Curtime);
int Year;
int Month;
int Day;
printf("\n输入年:\n"); scanf_s("%d", &Year);
printf("\n输入月:\n"); scanf_s("%d", &Month);
printf("\n输入日:\n"); scanf_s("%d", &Day);
My_tm->tm_year = Year - 1900;
My_tm->tm_mon = Month - 1;
My_tm->tm_mday = Day;
mktime(My_tm);
printf("今天是周%d!", My_tm->tm_wday);
}
void Time_Text9()
{
time_t Time;
Time = time(NULL);
printf_s("距离1970-1-1 00:00:00 已经过去%d秒!", Time);
}
void TUME_TEXT()
{
//asctime()使用方法!
//Time_Text1();
//clock()使用方法!
//Time_Text2();
//ctime()使用方法
//Time_Text3();
//difftime()使用方法
//Time_Text4();
//gmtime()使用方法
//Time_Text5();
//localtime()使用方法
//Time_Text6();
//mktime()使用方法
//Time_Text7();
//strftime()使用方法
//Time_Text8();
//time(NULL)使用方法
Time_Text9();
}