将秒转换为年,月,周,小时,分钟和秒

问题描述 投票:-2回答:2

我很难找到将秒数转换为年,月,周,小时,分钟,秒的解决方案。

例:

public Time(int inputSeconds) {
    int years = 0;
    int months = 0;
    int weeks = 0;
    int days = 0;
    int hours = 0;
    int seconds = 0;
}
java math time date-conversion
2个回答
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 + "");
    }

}

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天)。

© www.soinside.com 2019 - 2024. All rights reserved.