我很难找到将秒数转换为年,月,周,小时,分钟,秒的解决方案。
示例:
public Time(int inputSeconds) {
int years = 0;
int months = 0;
int weeks = 0;
int days = 0;
int hours = 0;
int seconds = 0;
}
答案 0 :(得分:3)
首先,我的建议是将时间变量类型从int更改为long。
Date类中有一些方法可以帮助您实现这一目标,但请记住,目前这些方法已被弃用。
import java.util.Date;
import java.util.Random;
class MyTime {
int years;
int months;
int day;
int hours;
int seconds;
public MyTime(long inputSeconds) {
Date d = new Date(inputSeconds);
this.years = d.getYear();
this.months = d.getMonth();
this.day = d.getDay();
this.hours = d.getHours();
this.seconds = d.getSeconds();
}
public static void main(String[] args) {
new MyTime(new Date().getTime()).show();
}
public void show() {
System.out.println("" + years + "");
System.out.println("" + months + "");
System.out.println("" + day + "");
System.out.println("" + hours + "");
System.out.println("" + seconds + "");
}
}
答案 1 :(得分:2)
对于数周,日,小时,分钟和秒,可以在转换中使用一些简单的数学,例如:
int weeks = seconds / 604800;
int days = (seconds % 604800) / 86400;
int hours = ((seconds % 604800) % 86400) / 3600;
int minutes = (((seconds % 604800) % 86400) % 3600) / 60;
seconds = (((seconds % 604800) % 86400) % 3600) % 60;
语法仅供您了解上一个值的来源。
年和月 取决于月份(例如2月份的天数比其他任何天数少),如果您正在考虑闰年(366天)与否。