【编程】
根据Unix时间戳计算时间,不分大小月,每月30天,每年按360天计算。
开始时间1970/01/01 00:00:00,输入秒数,显示时间例如,输入:
2
1
12345678
输出
1970/01/01 00:00:01
1970/05/23 21:21:18
public static void main(String[] args) {
countUnixTime(912345678);
}
private static void countUnixTime(long time) {
int second = (int) (time % 60);
int minute = (int) (time / 60 % 60);
int hour = (int) (time / 60 / 60 % 24);
int day = (int) (time / 60 / 60 / 24 % 30);
int month = (int) (time / 60 / 60 / 24 / 30 % 12);
int year = (int) (time / 60 / 60 / 24 / 30 / 12);
Calendar calendar = Calendar.getInstance();
calendar.set(1970, 00, 01, 00, 00, 00);
calendar.add(Calendar.SECOND, second);
calendar.add(Calendar.MINUTE, minute);
calendar.add(Calendar.HOUR_OF_DAY, hour);
calendar.add(Calendar.DAY_OF_MONTH, day);
calendar.add(Calendar.MONTH, month);
calendar.add(Calendar.YEAR, year);
System.out.println(calendar.getTime().toLocaleString());
} 测试结果:1999-4-30 13:21:18 #include <iostream>
#include <stdio.h>
#include<stdlib.h>
#include<string>
using namespace std;
string fun(long long second)
{
int year=1970;
int month=1;
int day=1;
int hour=0;
int minute=0;
while(second>=60)
{
second-=60;
++minute;
if(minute == 60)
{
++hour;
minute=0;
if(hour==24)
{
++day;
hour=0;
if(day==31)
{
++month;
day=1;
if(month==13)
{
++year;
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()
{
int n;
cin>>n;
long long *second = new long long[n];
for(int i=0;i<n;++i)
{
cin>>second[i];
}
for(int i=0;i<n;++i)
{
cout<<fun(second[i])<<endl;
}
return 0;
}
#include <stdio.h> int unix_date(){ int input;
scanf("%d", &input); int year, month, day, hour, minute, second;
year = input/31104000;
month = input%31104000/2592000;
day = input%31104000%2592000/86400;
hour = input%31104000%2592000%86400/3600;
minute = input%31104000%2592000%86400%3600/60;
second = input%31104000%2592000%86400%3600%60;
printf("%04d/%02d/%02d %02d:%02d:%02d", 1970+year, 1+month, 1+day, hour, minute, second); return 0;
} int main() {
unix_date(); return 0;
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
long h = 61274880000L; //1970年=61274880000秒
Scanner scan = new Scanner(System.in);
System.out.println("请输入秒数:");
int i = scan.nextInt();
long sum = h + i;
System.out.println((sum/31104000)+"/"+String.format("%02d",(sum%31104000)/2592000+1)+"/"+String.format("%02d",sum%2592000/86400+1)+" "+String.format("%02d",sum%86400/3600)+":"+String.format("%02d",sum%3600/60)+":"+String.format("%02d",sum%60));
}
}
package test;import java.util.Scanner;public class Unix {public StringBuffer getUnix(int num) {StringBuffer unix = new StringBuffer();// 求秒数int n = num % 60;String ss = "";// 秒if (n == 0)ss = ":00";else if (n < 10 && n > 0)ss = ":0" + n;elsess = ":" + n;num = (num - n) / 60;// 求分钟数n = num % 60;String mm = "";// 分钟if (n == 0)mm = ":00";else if (n < 10 && n > 0)mm = ":0" + n;elsemm = ":" + n;num = (num - n) / 60;// 求小时数n = num % 24;String HH = "";// 小时if (n == 0)HH = "00";else if (n < 10 && n > 0)HH = "0" + n;elseHH = "" + n;num = (num - n) / 24;// 求天数n = num % 30;String dd = "";// 天数if (n == 0)dd = "/01";else if (n < 10 && n > 0)dd = "/0" + (n+1);elsedd = "/" + (n+1);num = (num - n) / 30;// 求月数n = num % 12;String MM = "";// 天数if (n == 0)MM = "/01";else if (n < 10 && n > 0)MM = "/0" + (n+1);elseMM = "/" + (n+1);num = (num - n) / 12;// 求年数String yyyy = "";// 年数n=num;if (n == 0)yyyy = "1970";elseyyyy = "" + (n+1970);unix.append(yyyy).append(MM).append(dd).append(" ").append(HH).append(mm).append(ss);return unix;}public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner = new Scanner(System.in);int n = scanner.nextInt();int a[] = new int[n];for (int i = 0; i < n; i++) {a[i] = scanner.nextInt();}Unix unix = new Unix();for (int i = 0; i < n; i++) {System.out.println(unix.getUnix(a[i]));}}}