如何用c语言实现从现在到某天的倒计时

来源:百度知道 编辑:UC知道 时间:2024/05/21 00:13:53
如何用c语言实现从现在到某天某一时刻的倒计时,比如实现从当前系统时间到2009年7月28号零时零分零秒的倒计时,用秒计,并显示出来,该如何编写?
(倒计时起点为每次运行程序时的系统时间,终点固定为2009年7月28号零时零分零秒)
1楼的,不是那种秒表,是类似奥运会倒计时那种。只不过不是倒计时奥运会,是倒计时2009年7月28号。起点是当前系统时间

取得系统时间,用指定时间的年,月,日,时,分,秒,分别减去系统对应的位,所得时间换算成秒,然后就用秒表的原理,每过一秒,把剩余时间除以一年的秒数,余数再除以一个月的秒数,以此类推,然后把它输出到屏幕。

time_t tTime; //距1900年1月1日的秒数
char str[80];
struct tm* stTm; //时间结构,格式请见其它回答
time(&timer);
stTm = localtime(&tTime);
strftime(str,sizeof(str),"%Y%m%d",stTm);//格式化时间
printf(str);//输出

另外,格式化时间的格式说明如下,希望对你有帮助:
%a 星期几的简写
%A 星期几的全称
%b 月分的简写
%B 月份的全称
%c 标准的日期的时间串
%C 年份的后两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年分,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 12小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 12小时的时间
%R 显示小时和分钟:hh:mm
%S 十进制的秒数
%t 水平制表符
%T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)
%U 第年的第几周,把星期日做为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一