【c++】面试题:----根据Unix时间戳计算时间
来源:互联网 发布:win7仿mac dock栏 编辑:程序博客网 时间:2024/05/18 05:58
题目:根据Unix时间戳计算时间,不分大小月,每月30天,每年按360天计算,开始时间为1970/01/01 00:00:00 输入秒数,显示时间。
举例:输入10,输出1970/01/01 00:00:10
输入12345678 输出 1970/05/23 21:21:18
方法一:进位,60秒进1分钟,60分进1小时,24小时进1天,30天进1月,12月进1年,依次建立循环
代码:
#include<iostream>#include<stdio.h>#include<string>using namespace std;string CalculationDate(long long second){ int year = 1970; int month = 1; int day = 1; int hour = 0; int minute = 0; while (second>60) { second -= 60; minute += 1; if (minute == 60) { hour += 1; minute = 0; if (hour == 24) { day += 1; hour = 0; if (day == 31) { month += 1; day = 1; if (month == 13) { year += 1; month = 1; } } } } } char buff[] = "1970/01/01 00:00:00"; sprintf(buff, "%d/%02d/%02d %02d:%02d:%02d", year, month, day, hour, minute, second); return buff;}int main(){ cout << CalculationDate(12345678) << endl; system("pause"); return 0;}
方法二:取整,一年多少秒,一月多少秒,以此类推,依次取年、月、日…
代码:
string CalculationDate(long long second){ int year = 1970; int month = 1; int day = 1; int hour = 0; int minute = 0; long long minuteSecond = 60; long long hourSecond = 60 * minuteSecond; long long daySecond = 24 * hourSecond; long long monthSecond = 30 * daySecond; long long yearSecond = 12 * monthSecond; if (second > yearSecond) { int x = second / yearSecond; year += x; second -= x*yearSecond; } if (second > monthSecond) { int x = second / monthSecond; month += x; second -= x*monthSecond; } if (second > daySecond) { int x = second / daySecond; day += x; second -= x*daySecond; } if (second > hourSecond) { int x = second / hourSecond; hour += x; second -= x*hourSecond; } if (second > minuteSecond) { int x = second / minuteSecond; minute += x; second -= x*minuteSecond; } char buff[] = "1970/01/01 00:00:10"; sprintf(buff, "%d/%02d/%02d %02d:%02d:%02d", year, month, day, hour, minute, second); return buff;}
阅读全文
0 0
- 【c++】面试题:----根据Unix时间戳计算时间
- 面试题:根据Unix时间戳计算时间
- 根据Unix时间戳计算时间
- 根据时间戳计算年龄
- 根据儒略日计算实际时间 c#+mysql
- 根据时间戳来计算倒计时
- 面试题--计算给定日期和时间的下一秒
- Linux/Unix环境下计算C程序运行时间
- Linux/Unix环境下计算C程序运行时间
- Linux/Unix环境下计算C程序运行时间
- Linux/Unix环境下计算C程序运行时间
- 根据农历时间计算公历时间
- 根据公历时间计算农历时间
- UNIX时间和夏令时计算
- 倒计时,根据服务器时间计算
- 如何获取Unix时间戳[C++]
- unix时间戳转换成标准时间(c#)
- C实现Unix时间戳和本地时间转化
- Spring (三)注入依赖对象、注入集合类型的属性
- 用户特征分析的应用
- [日推荐]『智能小蜜』专治各种无聊
- js关闭浏览器前弹窗
- 复选框checkbox如何判定为被选中
- 【c++】面试题:----根据Unix时间戳计算时间
- 运营效果分析的典型应用
- 新手linux 搭建gerrit过程。
- 单列模式之volatile
- 异步
- 【Redis源码剖析】
- Jlink调试S5PV210
- 20170902 JavaWeb Cookie与Session相关知识
- 条件语句和循环语句