鱼C论坛

 找回密码
 立即注册
查看: 954|回复: 2

[技术交流] 日期相关问题

[复制链接]
发表于 2021-7-29 15:51:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        今天在论坛生无可恋地学C语言的时候,意外看到小甲鱼老湿的函数快查,咦,以前都没怎么注意,于是乎我点了进去...(居然免费完全不用鱼B?白嫖党已笑晕在厕所)里面函数挺齐全的,讲的也很细,还图文并茂的,果真是相见恨晚啊,但是呢,我发现小甲鱼对时间相关的函数讲得很简单,作为资深白嫖党,我怎么能放过这个水帖子的资会呢。。。
原帖在这里->传送门

那~我要开始瞎逼逼了

0.先给各位看看<time.h>库函数的数据类型的声明
typedef         long                clock_t;
typedef      __int32           __time32_t;
typedef      __time32_t     time_t;   
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代表一月,范围为[0,11]
       int tm_year;       //年份,值2为实际年份减去1900
       int tm_wday;     //0为星期天,1为星期天,[0,6]
       int tm_yday;      //天数,0为1月1日
       in tm_isdst;       //夏令时标识符,只有0和非0两种情况
};

如果看不懂也没关系,反正我也看不懂,咱也不讲这,我们只需要知道两种类型:time_t类型和struct tm类型,time_t其实就是long类型,只不过改了名字,struct tm是一个结构体类型,里面声明了很多用来存时间的变量,不过我们也不用深入了解,我们要学习的是函数


1.<time.h>里面函数挺多的,主要有一下几个:

(1)time_t time(time_t *calptr) 形参为time_t类型的指针变量,返回值计算机系统的日历时间,即从1970年1月1日,00:00:00到此时此刻经过的秒数,(计算机的日历嘛),也是time_t类型的
(2)struct tm *localtime(const time_t *calptr) 将计算机日历换算成我们人类能看懂的日历,还是本地时间
(3)struct tm *gmtime(time_t *timep) 和上一个函数差不多,不过返回的是世界时间,什么是世界时间?世界时间
(4)char *asctime(const struct tm *tp) 将上面两个函数作为形参,将时间转换成字符串形式,如Thu Jul 29 15:44:15 2021
(5)char *ctime(const time_t *tp) 这个函数的返回值和上一个的相同,功能也是一样的,只是形参不同

2.下面给出代码帮助理解,大家可以跟着敲一下,练练手感,也更有助于理解,(有没有感觉很头大,马上就完了,都看到这了)
<blockquote><span style="font-size: 14px;">#include <stdio.h></span>

这次先试试水,如果帖子审核通过了,反响还不错的话,就出下一期,这几个函数的习题

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-29 18:24:07 | 显示全部楼层

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-7-29 20:28:25 | 显示全部楼层
我搞不懂,发帖的时候我还仔细看了一边,帖子没错啊,发出来就变乱码了,难道是我小糊涂了?
#include <stdio.h>
#include <time.h>

int main(void)
{
        time_t  nowtime;

        printf("     计算机时间:%u\n",time(&nowtime));
        printf("       本地时间:%d年%d月%d日,%d:%d:%d\n", localtime(&nowtime)->tm_year + 1900, localtime(&nowtime)->tm_mon + 1, localtime(&nowtime)->tm_mday, localtime(&nowtime)->tm_hour, localtime(&nowtime)->tm_min, localtime(&nowtime)->tm_sec);
        printf("       世界时间:%d年%d月%d日,%d:%d:%d\n", gmtime(&nowtime)->tm_year + 1900, gmtime(&nowtime)->tm_mon + 1, gmtime(&nowtime)->tm_mday, gmtime(&nowtime)->tm_hour, gmtime(&nowtime)->tm_min, gmtime(&nowtime)->tm_sec);
        printf("asctime函数表示:%s", asctime(localtime(&nowtime)));
        printf("  ctime函数表示:%s", ctime(&nowtime));

        return 0;
}
现在补发代码吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 00:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表