"输出应该是这样的(回输输入是个好主意):你输入了500,000秒,即5天,18小时,53分钟和20秒.(5天18:53:20小时)
所以你们可以告诉我应该怎么做,理解和做到最简单的方法是什么,请帮助大家,我真的卡住了,他说"没有硬编码",我不确定它是什么但是我认为他希望我们为它们分配常量.
alk*_*ber 27
使用内置的示例TimeUnit.
long uptime = System.currentTimeMillis();
long days = TimeUnit.MILLISECONDS
.toDays(uptime);
uptime -= TimeUnit.DAYS.toMillis(days);
long hours = TimeUnit.MILLISECONDS
.toHours(uptime);
uptime -= TimeUnit.HOURS.toMillis(hours);
long minutes = TimeUnit.MILLISECONDS
.toMinutes(uptime);
uptime -= TimeUnit.MINUTES.toMillis(minutes);
long seconds = TimeUnit.MILLISECONDS
.toSeconds(uptime);
Run Code Online (Sandbox Code Playgroud)
amb*_*bes 15
我的基本java算术计算的快速答案是这样的:
首先考虑以下值:
1 Minute = 60 Seconds
1 Hour = 3600 Seconds ( 60 * 60 )
1 Day = 86400 Second ( 24 * 3600 )
Run Code Online (Sandbox Code Playgroud)
代码段如下:
int input=500000;
int numberOfDays;
int numberOfHours;
int numberOfMinutes;
int numberOfSeconds;
numberOfDays = input / 86400;
numberOfHours = (input % 86400 ) / 3600 ;
numberOfMinutes = ((input % 86400 ) % 3600 ) / 60
numberOfSeconds = ((input % 86400 ) % 3600 ) % 60 ;
Run Code Online (Sandbox Code Playgroud)
我希望对你有所帮助.
小智 6
最简单的方法
Scanner in = new Scanner(System.in);
System.out.println("Enter seconds");
int s = in.nextInt();
int sec = s % 60;
int min = (s / 60)%60;
int hours = (s/60)/60;
System.out.println(hours + ":" + min + ":" + sec);
Run Code Online (Sandbox Code Playgroud)
小智 6
应该是这样的:
public static void calculateTime(long seconds) {
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);
System.out.println("Day " + day + " Hour " + hours + " Minute " + minute + " Seconds " + second);
}
Run Code Online (Sandbox Code Playgroud)
说明:
TimeUnit.SECONDS.toHours(seconds)将使您直接从秒转换为小时,而无需花费几天的时间。减去您已经拥有的天数的小时数,即day * 24。您现在剩下了几个小时。分钟和秒相同。您需要分别减去已经得到的小时和分钟。
小智 1
看看班级:
org.joda.time.DateTime
Run Code Online (Sandbox Code Playgroud)
这允许您执行以下操作:
old = new DateTime();
new = old.plusSeconds(500000);
System.out.println("Hours: " + (new.Hours() - old.Hours()));
Run Code Online (Sandbox Code Playgroud)
但是,您的解决方案可能更简单:
您需要计算出一天有多少秒,将输入除以结果以获得天数,然后从输入中减去它以保留余数。
然后,您需要计算出余数有多少小时,然后是分钟,最后的余数是秒。
这就是为您完成的分析,现在您可以专注于代码。
您需要询问她/他所说的“无硬编码”是什么意思。一般来说,它意味着传递参数,而不是固定输入值。有很多方法可以做到这一点,具体取决于您运行代码的方式。属性是Java中的一种常见方式。
| 归档时间: |
|
| 查看次数: |
72973 次 |
| 最近记录: |