time.h 库在解题时的使用

time.h

一个c标准库,用于处理日期和时间

对于某题目:

题目描述
秦时明月系列动漫讲述了秦灭六国,建立中国首个帝国开始,到咸阳被楚军攻陷结束,时间跨度30年,讲述……好了,话不多说,动漫每过一周更新一集,秦时明月系列一般一部520集,现在,秦时明月第五部君临天下结束了,学姐坐等第六部沧海横流开播,但是学姐不想再每周看一集,希望一次看过瘾,所以,希望你们直接告诉学姐第六部什么时间结束。
输入
输入数据有多组,以EOF为结束标志,每组输入一个日期,格式为:yyyy-mm-dd表示第六部开始的时间
输出
输出第六部结束的具体日期,格式如下yyyy-mm-dd;

题目要求输入当前时间 并将当前时间加上 7 * 519 天
可以使用time.h库简便计算


介绍其中几个类型和函数

类型

  • time_t 时间码 (32位以1970-01-01 0:0:0 UTC为0,64位以1900-01-01 0:0:0 UTC 为0),单位为秒
  • struct tm 存储日期分量的结构体,有
    • int tm_sec
    • int tm_min
    • int tm_hour
    • int tm_mday 某个月的第几天
    • int tm_mon 某年的第几月 一月记为0
    • int tm_year 从某年(1900或1970,取决于设备)开始记为0 的年份
    • int tm_wday 周日为起始 周日为0
    • int tm_yday 某年的第几天 第一天记为0
    • int tm_isdst 是否启动夏令时 -1 自动 0 禁止 1 启动

函数

  • 获取时间
    • time() 设备时间
    • clock() 程序运行时间
  • 转换时间
    • localtime() 转换为本地时间
    • gmtime() 转换为UTC时间
    • mktime() struct tm转换为time_t

格式化和比较这里没说

一些重要的东西
日期分量结构体内成员需要全部赋值
tm_mday 从 1 开始, 而tm_mon 从 0 开始
gmtime() 默认的是UTC+0 ,这会导致中国的时间+8小时(因为中国+8区)
localtime() 默认和系统时区保持一致

对上述题目的一种解法

#include <stdio.h>
#include <math.h>
#include <time.h>

int main()
{
    struct tm time;
    struct tm *outputTime;
    time_t timestamp;
    int year = 0, month = 0, day = 0;
    while (scanf("%d-%d-%d", &year, &month, &day) != EOF) {
        time.tm_year = year - 1900;
        time.tm_mon = month - 1;
        time.tm_mday = day;
        time.tm_hour = 0;
        time.tm_min = 0;
        time.tm_sec = 0;
        time.tm_isdst = 0;
        timestamp = mktime(&time);
        timestamp += 7 * 24 * 60 * 60 * 519 * 1;
        outputTime = localtime(&timestamp);
        printf("%d-%02d-%02d\n", outputTime->tm_year + 1900, outputTime->tm_mon + 1, outputTime->tm_mday);
    }
    return 0;
}

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇