2015-04-16 104 views
-2

我正在努力寻找将秒转换为年,月,周,小时,分钟和秒的解决方案。将秒转换为年,月,周,小时,分和秒

例:

我所有的意见
public Time(int inputSeconds) { 
    int years = 0; 
    int months = 0; 
    int weeks = 0; 
    int days = 0; 
    int hours = 0; 
    int seconds = 0; 
} 
+0

尝试谷歌搜索几秒钟到几小时...秒到几天...几秒到几周...等... – brso05

+8

你不能将秒转换成几个月。一个月不是一个标准的时间量 – ControlAltDel

+0

一个月内几秒钟? –

回答

3

首先是从int长改变时间变量的类型。

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 + ""); 
    } 

} 
+0

是的,我有一个使用Date的想法,但我不知道如何,谢谢! –

+0

欢迎@faris, –

+0

很久以前,Date类的getXXX()方法已被弃用。因此,将它们用于任何目的不是一个好主意。 – mvsagar

1

对于周,日,小时,分钟和秒就可以做一些简单的转换是这样的:

int weeks = seconds/604800; 
int days = (seconds % 604800)/86400 
int hours = ((seconds % 604800) % 86400)/3600; 
int minutes = (((seconds % 604800) % 86400) % 3600)/60; 
int seconds = (((seconds % 604800) % 86400) % 3600) % 60; 

的语法就是让你明白的地方以前的值从何而来。

对于它在一个月取决于(例如二月里有更少的天数比任何其他),如果你正在考虑到闰年(365天)或没有。

+0

谢谢,是的,我刚才发现这不会很好,因为有时会有不同的日子等。再次感谢。 –

+0

不客气! –

相关问题