下面自我测试

  • | 返回程序启动到现在的运行时间是函数
  • | 将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();
}