最近在接触结构体,也没遇见什么有意思的程序,和比较难懂的逻辑,所以今天就分享一时间时间函数的代码、
源代码如下:
#include<time.h>
#include<stdio.h>
#include<windows.h>
int main()
{
int h = 0, m = 0, s = 0;
int t = 0;
while (1)
{
t = time(0); //获取总秒数
s = t % 60;
m = t % 3600 / 60; //1h= 3600s不足1h的除60即为分钟
h = (t % (24 * 3600) / 3600 + 8) % 24; //1天24h 得到当天小时数+8为东八区区时 避免出现大于24h的情况对24取余
printf("%02d:%02d:%02d\r", h, m, s);
Sleep(1000);//程序执行较快 对时间进行控制 执行挂起1s
}
return 0;
}
也是仅仅只有短短的二三十行,但却可以实现时间的显示,time (0)的意思是获取从发明时间开始到现在一刻的总时间长度,也是总秒数,然后要算秒为单位,只要利用总时间除余%60即可,而分钟单位要除余3600再除60,因为定义都为整形,当为小数,除不尽的时候,会自动取整。小时单位则要除余天数总共秒数,由此也可以有一个猜想,如果我们要显示年月日呢?
也是一样的道理,日只需要用总时间对月除余,然后再除以一天所对应的总秒数就可以了!
再回到这个程序,关于小时的获取,稍微繁琐一点,要加一个8了,是因为我们再东八时区,根据太阳公公的运动决定,这个需要查一下地理知识就行了
最后要完成每秒显示一次,则需要函数#include<windows.h>的sleep,每一秒中屏幕显示一次就行了,把这些全部放进一个死循环中
我们的时间表就完成了!