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

c语言时间戳转换日期格式_c语言时间转换为时间戳时间戳是计算机中记录时间的一种方法,某一时刻的时间戳指的是从1970年1月1日0时0分0秒开始到该时刻总共过了多少秒。请编程任意输入一个整数,然后计算出它表示的是哪一天哪一刻。问题分析输入:任意整数n(0≤n≤2147483647),表示从1970年1月1日0时0分0秒到该时刻过了多少秒。输出:y年m月d日H时M分S秒,y、m…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

时间戳是计算机中记录时间的一种方法,某一时刻的时间戳指的是从 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

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

算法描述

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秒

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188115.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 正版office2007标准版

    正版office2007标准版正版office2007标准版正版office2007标准版,供应2007office标准版,正版office2007询价,正版office2007价格 胡辉:13590176235深圳office2007 中文家庭与学生版彩包:深圳office200

    2022年7月19日
    14
  • 几种更新(Update语句)查询的方法

    几种更新(Update语句)查询的方法

    2021年12月13日
    48
  • vue路由懒加载的实现方式_vue-router路由模式

    vue路由懒加载的实现方式_vue-router路由模式本文已参与「新人创作礼」活动,一起开启掘金创作之路1.路由懒加载如何实现当打包构建应用时,JavaScript包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就会更加高效当前,我们使用如下方式导入组件importLoginfrom’../views/Login打包后,这些组件都会被打包到一个.s文件中,css代码会打包到css文件中访问应用时,就会下载这js文件和对应的css文件随着代码的增多,文件

    2022年10月7日
    0
  • Mac用QuickTime录屏+soundflower录制屏内外声音

    Mac用QuickTime录屏+soundflower录制屏内外声音mac自带的quickTime录屏没有声音,可以安装soundflower录制屏内外声音。安装好soundflower后,开始配置。启动台搜索MIDI音频设置,左下角+号聚集设备之后是+多输出设备之后是系统偏好设置选声音,输入选聚集设备之后是输出,选多输出设备之后配置quicktime:右键,新建屏幕录制,选项,聚集设备,之后OK了,开始录制吧。录完后需要声音:输入和输出改回内置麦克风和内置扬声器,不然声音大小不能修改了。…

    2022年6月3日
    56
  • linux安装telnet服务「建议收藏」

    linux安装telnet服务「建议收藏」文章目录前言一、telnet是什么?二、使用步骤1.安装telent2、重新启动守护进程3、测试总结前言最新公司需要迁移项目需要用到telnet命令,趁此机会做个总结归纳提示:以下是本篇文章正文内容,下面案例可供参考一、telnet是什么?telnet是一种简单的基于文本的网络协议,用于通过“TCP/IP”网络访问远程计算机和终端;telnet为用户提供了一个双向的交互式文本通信系统,该系统使用超过8字节的虚拟终端连接。二、使用步骤1.安装telent步骤如下:tep1、rpm.

    2022年10月28日
    0
  • ajax发送异步请求四个步骤,AJAX的异步请求的四个步骤[通俗易懂]

    ajax发送异步请求四个步骤,AJAX的异步请求的四个步骤[通俗易懂]ajax异步请求详解ajaxajax定义:异步的JavaScript和xml浏览器一、建立对象,XMLHttpRrquest的出现才有了异步处理。服务器XMLHttpRrquest是AJAX的基础异步全部的现代浏览器均支持XMLHttpRrquest对象(IE5和IE6使用ActiveObject)asyncXMLHttpRrquest用于在后台与服务器交换数据。这意味着能够在不从新加载整个网页的…

    2022年5月17日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号