unix系统时间转换程序
2010-05-29 00:29
363 查看
unix纪元
描述
在著名的unix系统中,使用了一种简洁高效的时间表示方法,即:
将1970年1月1日0点作为“unix纪元”的原点,从1970年1月1日开始经过的秒数存储为一个32位整数
请编写一个程序,帮助把一个unix时间辍,转换成形如"YYYY-mm-dd HH:ii:ss"的格式,其中的字母分别代表
YYYY 4 位数字完整表示的年份
mm 数字表示的月份,有前导零的 2 位数字
dd 月份中的第几天,有前导零的2位数字
HH 小时,24 小时格式,有前导零
ii 有前导零的分钟数
ss 秒数,有前导零
输入
输入数据有若干行,每行包含一个整数t,(0<=t<2^31)
输出
对每一行输入数据,输出一行,为形如“YYYY-mm-dd HH:ii:ss”格式的时间
样例输入
10
1234567890
样例输出1970-01-01 00:00:10
2009-02-13 23:31:30
我的程序
描述
在著名的unix系统中,使用了一种简洁高效的时间表示方法,即:
将1970年1月1日0点作为“unix纪元”的原点,从1970年1月1日开始经过的秒数存储为一个32位整数
请编写一个程序,帮助把一个unix时间辍,转换成形如"YYYY-mm-dd HH:ii:ss"的格式,其中的字母分别代表
YYYY 4 位数字完整表示的年份
mm 数字表示的月份,有前导零的 2 位数字
dd 月份中的第几天,有前导零的2位数字
HH 小时,24 小时格式,有前导零
ii 有前导零的分钟数
ss 秒数,有前导零
输入
输入数据有若干行,每行包含一个整数t,(0<=t<2^31)
输出
对每一行输入数据,输出一行,为形如“YYYY-mm-dd HH:ii:ss”格式的时间
样例输入
10
1234567890
样例输出1970-01-01 00:00:10
2009-02-13 23:31:30
我的程序
#include<cstdio> int isLeapyear(int n) { return (n % 100 == 0 )? (n % 400 == 0) :(n % 4 == 0); } int main(void) { int leapYearDays = 366; int nonleapYearDays = 365; int year,month,day,hour = 0,minute = 0,second = 0; int n,i,k,flag; int dayOfmonth[2][12] ={{31,28,31,30,31,30,31,31,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}}; scanf("%d",&n); second = n % 60; minute = n / 60 % 60; hour = n / 60 / 60 % 24; day = n / (24 * 60 * 60); year = 1970; while(day > 366) { isLeapyear(year) ? day -= leapYearDays : day -= nonleapYearDays; year++; } if(day == 365 && ~isLeapyear(year)) { day = 0; month = 1; year += 1; } flag = isLeapyear(year); month = 1; for(i = 0;i<=11;i++) { if(day > 0) { if(day - dayOfmonth[flag][i] > 0) { month += 1; day -= dayOfmonth[flag][i]; } } } day += 1; // day start from 1; printf("%d-%02d-%02d %02d:%02d:%02d/n",year,month,day,hour,minute,second); return 0; }
相关文章推荐
- Mysql日期时间类型(DATE,DATETIME,TIMESTAMP)和函数及与linux系统时间之间的转换(UNIX_TIMESTAMP、FROM_UNIXTIME)
- unix时间转换成系统时间
- 长整形 Unix系统毫秒时间 (long类型) 转换为时间格式
- javascript, 将系统时间转换为unix_timestamp
- unix系统里的各种时间和时间的转换
- Unix 时间戳 互相转换 系统标准形式时间
- 将UNIX时间戳转换为系统时间的PHP语句
- 单片机系统时间与unix time之间的转换
- C#中系统时间和UNIX时间戳互相转换
- C#中系统时间和UNIX时间戳互相转换
- UNIX时间戳与.net日期类的转换
- Shell下获取系统时间及转换为时间戳的方法
- Unix时间转换
- c# datetime与 timeStamp(unix时间戳) 互相转换
- c# datetime与 timeStamp(unix时间戳) 互相转换
- 32位程序在64位系统上获取系统安装时间
- 基于atmel mega88编写了一个简单的时间触发系统单片机框架程序
- 麻省理工学院公开课:信号与系统:模拟与数字信号处理> 离散时间 傅里叶转换
- UNIX时间戳与.net日期类的转换
- unix时间戳转换问题