Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将秒转换为年时分秒_Java_Time_Converter - Fatal编程技术网

Java 将秒转换为年时分秒

Java 将秒转换为年时分秒,java,time,converter,Java,Time,Converter,我是新的,标准的开始,所以剩下的就不说了。 我必须把每一个整数转换成秒吗,还是这样? 因为当我反向、手动计算并计算最终语句的秒数时,我得到的差异是小时 Thx CAU Scanner input = new Scanner(System.in); final int secmin = 60; final int day = 24; final int year = 365; int seconds = input.nextInt(); int mi

我是新的,标准的开始,所以剩下的就不说了。 我必须把每一个整数转换成秒吗,还是这样? 因为当我反向、手动计算并计算最终语句的秒数时,我得到的差异是小时

Thx CAU

    Scanner input = new Scanner(System.in);
    final int secmin = 60;
    final int day = 24;
    final int year = 365;
    int seconds = input.nextInt();
    int minutes = seconds / secmin;
    int remainSec = seconds % secmin ;

    int hours = minutes / secmin;
    int remainMin = hours % secmin;
    int days = hours / day;
    int remainHours = hours % day;
    int years = days / year;
    int remainDays = days % year;

    if (minutes <= 59)
    {
        System.out.println(seconds + " seconds is " + minutes +" minutes and " + remainSec + " seconds");
    }
    else if (hours <= 23) 
    {   

        System.out.println(seconds + " seconds is " + hours +" hours and " + remainMin + " minutes " + remainSec + " seconds");
    }
    else if (days <= 364)
    {   

        System.out.println(seconds + " seconds is " + days + " days "  + remainHours +" hours and " + remainMin + " minutes " + remainSec + " seconds");
    }

    else
    {
        System.out.println(seconds + " seconds is " + years + " years " + remainDays + " days "  + remainHours +" hours and " + remainMin + " minutes " + remainSec + " seconds");
    }
扫描仪输入=新扫描仪(System.in);
最终整数秒分=60;
最后一天=24;
最后整年=365;
int seconds=input.nextInt();
整数分钟=秒/秒分钟;
int remainSec=秒%secmin;
整小时=分钟/秒分钟;
整数剩余分钟=小时%secmin;
整数天=小时/天;
剩余时间=小时%天;
整数年=天/年;
剩余天数=天数%年;

如果(分钟我认为这句话需要更改: 从“整数剩余分钟=小时%s分钟

改为“int remainMin=minutes%secmin;”


Rest都看起来不错。

代码看起来不错。但是,我将从if语句中删除“幻数”:

Scanner input = new Scanner(System.in);
final int secmin = 60;
final int day = 24;
final int year = 365;
int seconds = input.nextInt();
int minutes = seconds / secmin;
int remainSec = seconds % secmin ;

int hours = minutes / secmin;
int remainMin = hours % secmin;
int days = hours / day;
int remainHours = hours % day;
int years = days / year;
int remainDays = days % year;

if (minutes < secMin)
{
    System.out.println(seconds + " seconds is " + minutes +" minutes and " + remainSec + " seconds");
}
else if (hours < day) 
{   

    System.out.println(seconds + " seconds is " + hours +" hours and " + remainMin + " minutes " + remainSec + " seconds");
}
else if (days < year)
{   

    System.out.println(seconds + " seconds is " + days + " days "  + remainHours +" hours and " + remainMin + " minutes " + remainSec + " seconds");
}

else
{
    System.out.println(seconds + " seconds is " + years + " years " + remainDays + " days "  + remainHours +" hours and " + remainMin + " minutes " + remainSec + " seconds");
}
扫描仪输入=新扫描仪(System.in);
最终整数秒分=60;
最后一天=24;
最后整年=365;
int seconds=input.nextInt();
整数分钟=秒/秒分钟;
int remainSec=秒%secmin;
整小时=分钟/秒分钟;
整数剩余分钟=小时%secmin;
整数天=小时/天;
剩余时间=小时%天;
整数年=天/年;
剩余天数=天数%年;
如果(分钟<秒分钟)
{
System.out.println(秒+“秒”是“+minutes+”分钟和“+remainSec+”秒);
}
否则如果(小时<天)
{   
System.out.println(秒+“秒”是“+hours+”小时和“+remainMin+”分钟“+remainSec+”秒”);
}
否则如果(天<年)
{   
系统输出打印项次(秒数+“秒数为”+天数+“天数”+剩余小时数+“小时数”和“+剩余分钟数+“分钟数”+剩余安全数+“秒数”);
}
其他的
{
系统输出打印项次(秒+“秒为”+年+“年”+剩余天数+“天”+剩余小时数+小时数和“+剩余分钟数+剩余安全数+“秒”);
}
我知道年/日/小时/分/秒的比率都是非常静态的,但是如果有人想看到你的代码,每分钟10秒,每小时10分钟,那怎么办?那么你只需要改变一个位置,而不是两个位置

在生产应用程序中,这可能会扩展到代码中的数百个位置,并且很难找到每个位置。

我确实输入了=

1234234234 s

输出=

1234234234秒等于39年50天2小时2分34秒

总数=

1229904000秒+4320000秒+7200秒+120秒+34秒=1234231354秒

差异=

2880秒

当我改变时:

整数剩余分钟=小时%secmin;;至“整数剩余分钟=分钟%secmin

然后:

1234234234秒是39年50天2小时50分34秒

结果:

48分钟添加

1229904000秒+4320000秒+7200秒+3000秒+34秒=1234234234秒

差是0


感谢您对用户2006544的更正和Steve的改进。

您能举个例子吗?您期望得到什么?请注意,您有365天。
秒在您的代码中代表什么?从Unix纪元算起的秒数还是从当前时间算起的秒数?如果您能澄清您的问题所在,那么您就可以得到更好的答案。我的答案中的例子,Peter Lawrey。谢谢你提醒我。秒代表变量类型int,Mick助记符。