前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c语言时间戳转换日期格式_c语言时间转换为时间戳

c语言时间戳转换日期格式_c语言时间转换为时间戳

作者头像
全栈程序员站长
发布2022-11-10 14:31:59
7K0
发布2022-11-10 14:31:59
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

时间戳是计算机中记录时间的一种方法,某一时刻的时间戳指的是从 1970 年 1 月 1 日 0 时 0 分 0 秒开始到该时刻总共过了多少秒。请编程任意输入一个整数,然后计算出它表示的是哪一天哪一刻。

问题分析

输入:任意整数 n(0≤n≤2147483647),表示从 1970 年 1 月 1 日 0 时 0 分 0 秒到该时刻过了多少秒。

输出:y 年 m 月 d 日 H 时 M 分 S 秒,y、m、d、H、M、S 为六个整数。

假设一年 12 个月,每个月有 30 天,那么:

一天的时间(秒)为:days = 24×60×60 = 86400 秒;

一个月的时间(秒)为:months = days×30 = 2592000 秒;

一年的时间(秒)为:years = months×12 = 31104000 秒;

2147483647=231-1,它是 32 位操作系统能够处理的最大的整型数。根据 n 的取值范围,定义变量 n 的数据类型应该为 long int 型。

n 除以一年的时间(秒)years 的商加上 1970 就是具体年份 y,余数再除以一月的时间(秒)months 的商加 1 就是月份 m,再次得到的余数除以一天的时间(秒)days 的商加 1 就是日期 d,第三次得到的余数除以 3600 的商就是小时数 H,第四次得到的余数除以 60 的商就是分 M 和余数就是秒 S。

y = n / years + 1970

m = n % years / months + 1

d = n % years % months / days + 1

H = n % years % months % days / 3600

M = n % years % months % days % 3600 / 60

S = n % years % months % days % 3600 % 60

图 1 展示了普通时间值和时间戳(秒单位的值)相互转换的过程。

d5c18e40983ce6dbad33ea1f947468cb.gif
d5c18e40983ce6dbad33ea1f947468cb.gif

图 1:普通时间值和时间戳(秒单位的值)相互转换

算法描述

70e6839250dc1c9fbe5885505739fc01.gif
70e6839250dc1c9fbe5885505739fc01.gif

代码清单 1:C语言程序源代码(时间戳)

#include

#include

int main( )

{

system(“color 70”);

long days = 24 * 60 * 60;

long months = days * 30;

long years = months * 12;

long n,y,m,d,HH,MM,SS;

printf(“输入整数 n(0-2147483647):”);

scanf(“%ld”,&n);

y = n / years + 1970;

m = n % years / months + 1;

d = n % years % months / days + 1;

HH = n % years % months % days / 3600;

MM = n % years % months % days % 3600 / 60;

SS = n % years % months % days % 3600 % 60;

printf(“\n%d年%d月%d日%d时%d分%d秒\n”,y,m,d,HH,MM,SS);

system(“pause”);

return 0;

}

运行结果为:

输入整数 n(0-2147483647):4464502

1970年2月22日16时8分22秒

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月28日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档