java secondtotime_Java:使用TimeUnit将秒转换为日,小时,分和秒

应该是这样的

int day = (int)TimeUnit.SECONDS.toDays(seconds); long hours = TimeUnit.SECONDS.toHours(seconds) - (day *24); long minute = TimeUnit.SECONDS.toMinutes(seconds) - (TimeUnit.SECONDS.toHours(seconds)* 60); long second = TimeUnit.SECONDS.toSeconds(seconds) - (TimeUnit.SECONDS.toMinutes(seconds) *60);

编辑说明:

日计算正确无需解释。

TimeUnit.SECONDS.toHours(秒)将使您可以直接从秒转换为小时,而无需考虑已经计算的天数。 减去你已经有几天的时间,即一天* 24。 你现在有剩余的时间了。

同样的分钟和秒钟。 你需要分别减去已经得到的小时和分钟。

你可以这样做只使用TimeUnit :

public static void calculateTime(long seconds) { int day = (int) TimeUnit.SECONDS.toDays(seconds); long hours = TimeUnit.SECONDS.toHours(seconds) - TimeUnit.DAYS.toHours(day); long minute = TimeUnit.SECONDS.toMinutes(seconds) - TimeUnit.DAYS.toMinutes(day) - TimeUnit.HOURS.toMinutes(hours); long second = TimeUnit.SECONDS.toSeconds(seconds) - TimeUnit.DAYS.toSeconds(day) - TimeUnit.HOURS.toSeconds(hours) - TimeUnit.MINUTES.toSeconds(minute); System.out.println("Day " + day + " Hour " + hours + " Minute " + minute + " Seconds " + second); }

或略短,但可能不那么直观

public static void calculateTime(long seconds) { int day = (int) TimeUnit.SECONDS.toDays(seconds); long hours = TimeUnit.SECONDS.toHours(seconds) - TimeUnit.DAYS.toHours(day); long minute = TimeUnit.SECONDS.toMinutes(seconds) - TimeUnit.HOURS.toMinutes(TimeUnit.SECONDS.toHours(seconds)); long second = TimeUnit.SECONDS.toSeconds(seconds) - TimeUnit.MINUTES.toSeconds(TimeUnit.SECONDS.toMinutes(seconds)); System.out.println("Day " + day + " Hour " + hours + " Minute " + minute + " Seconds " + second); }

简单的方法:

public static void calculateTime(long seconds) { long sec = seconds % 60; long minutes = seconds % 3600 / 60; long hours = seconds % 86400 / 3600; long days = seconds / 86400; System.out.println("Day " + days + " Hour " + hours + " Minute " + minutes + " Seconds " + sec); }

这里是我创build的代码:( 3600秒显示“天:0小时:1分钟:0秒:0”)

public class TimeConvert { public static void main(String[] args) { int fsec,d,h,m,s,temp=0,i; fsec=3600; //For Days if(fsec>=86400) { temp=fsec/86400; d=temp; for(i=1;i<=temp;i++) { fsec-=86400; } } else { d=0; } //For Hours if(fsec>=3600) { temp=fsec/3600; h=temp; for(i=1;i<=temp;i++) { fsec-=3600; } } else { h=0; } //For Minutes if(fsec>=60) { temp=fsec/60; m=temp; for(i=1;i<=temp;i++) { fsec-=60; } } else { m=0; } //For Seconds if(fsec>=1) { s=fsec; } else { s=0; } System.out.println("Days:"+d+" Hours:"+h+" Minutes:"+m+" Seconds:"+s); } }

希望它能回答你的问题。

尝试这个

public static void calculateTime(long seconds) { int day = (int)TimeUnit.SECONDS.toDays(seconds); long hours = TimeUnit.SECONDS.toHours(seconds) ; long tempSec = seconds - (TimeUnit.HOURS.toSeconds(hours) ); System.out.println("after hours calculation "+ tempSec); long minute = TimeUnit.SECONDS.toMinutes(tempSec); if(tempSec > TimeUnit.MINUTES.toSeconds(minute)){ tempSec = tempSec - (TimeUnit.MINUTES.toSeconds(minute) ); }else{ tempSec = TimeUnit.MINUTES.toSeconds(minute) - tempSec; } System.out.println("after min calculation "+ tempSec); long second = TimeUnit.SECONDS.toSeconds(tempSec) ; System.out.println("Day " + day + " Hour " + hours + " Minute " + minute + " Seconds " + second); }

public static void timeCalculator(){ Scanner input = new Scanner(System.in); System.out.print("Enter length of time in seconds: "); int n = input.nextInt(); int nDay = n/86400; int nHours = (n%86400)/3600; int nMin = ((n%86400)%3600) /60; int nSec =(((n%86400)%3600)%60); System.out.println(); System.out.print("That is "+ nDay+ " day(s),"+nHours+" hour(s), "+nMin+" minute(s), and "+nSec+" second(s). "); }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值