在c语言中如何使用系统函数得到当前的日期?

在c语言编程中想得到系统的当前时间,记得前面应该包含time.h的头文件,但是不知道具体使用什么函数?还有就是怎么实现日期的相减,用旧的时间和当前的时间得到差值就是相差的... 在c语言编程中想得到系统的当前时间 ,记得前面应该包含time.h的头文件,但是不知道具体使用什么函数?还有就是怎么实现日期的相减,用旧的时间和当前的时间得到差值就是相差的天数?在c中没有日期类型,日期是不是应该存放在字符数组中以字符串的形式存在,这样相减的时候如果用atoi函数转化为整形进行计算还是不能解决问题啊?有哪位知道请帮下忙?谢谢啦! 展开
 我来答
薇儿xwk
2014-04-29 · TA获得超过312个赞
知道答主
回答量:106
采纳率:100%
帮助的人:98.4万
展开全部
获得日期和时间 这里说的日期和时间就是我们平时所说的年、月、日、时、分、秒等信息。从第2节我们已经知道这些信息都保存在一个名为tm的结构体中,那么如何将一个日历时间保存为一个tm结构的对象呢? 其中可以使用的函数是gmtime()和localtime(),这两个函数的原型为: struct tm * gmtime(const time_t *timer); struct tm * localtime(const time_t * timer); 其中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数 是将日历时间转化为本地时间。比如现在用gmtime()函数获得的世界标准时间是2005年7月30日7点18分20秒,那么我用 localtime()函数在中国地区获得的本地时间会比世界标准时间晚8个小时,即2005年7月30日15点18分20秒。下面是个例子: #include "time.h" #include "stdio.h" int main(void) { struct tm *local; time_t t; t=time(NUL); local=localtime(&t); printf("Local hour is: %d\n",local->tm_hour); local=gmtime(&t); printf("UTC hour is: %d\n",local->tm_hour); return 0; } 运行结果是: Local hour is: 15 UTC hour is: 7 固定的时间格式 我们可以通过asctime()函数和ctime()函数将时间以固定的格式显示出来,两者的返回值都是char*型的字符串。返回的时间格式为: 星期几 月份 日期 时:分:秒年\n{post.content} 例如:Wed Jan 02 02:03:55 1980\n{post.content} 其中\n是一个换行符,{post.content}是一个空字符,表示字符串结束。下面是两个函数的原型: Char * asctime(const struct tm * timeptr); char * ctime(const time_t *timer); 其中asctime()函数是通过tm结构来生成具有固定格式的保存时间信息的字符串,而ctime()是通过日历时间来生成时间字符串。这样的 话,asctime()函数只是把tm结构对象中的各个域填到时间字符串的相应位置就行了,而ctime()函数需要先参照本地的时间设置,把日历时间转 化为本地时间,然后再生成格式化后的字符串。在下面,如果t是一个非空的time_t变量的话,那么: printf(ctime(&t)); 等价于: struct tm *ptr; ptr=localtime(&t); printf(asctime(ptr)); 那么,下面这个程序的两条printf语句输出的结果就是不同的了(除非你将本地时区设为世界标准时间所在的时区): #include "time.h" #include "stdio.h" int main(void) { struct tm *ptr; time_t lt; lt =time(NUL); ptr=gmtime(<); printf(asctime(ptr)); printf(ctime(<)); return 0; } 运行结果: Sat Jul 30 08:43:03 2005 Sat Jul 30 16:43:03 2005
啊陌0294
2014-04-29 · 超过66用户采纳过TA的回答
知道答主
回答量:184
采纳率:0%
帮助的人:60.7万
展开全部
在c语言编程中想得到系统的当前时间 ,记得前面应该包含time.h的头文件,但是不知道具体使用什么函数?还有就是怎么实现日期的相减,用旧的时间和当前的时间得到差值就是相差的天数?在c中没有日期类型,日期是不是应该存放在字符数组中以字符串的形式存在,这样相减的时候如果用atoi函数转化为整形进行计算还是不能解决问题啊?有哪位知道请帮下忙?谢谢啦!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式