[英]Java convert seconds to days, hours, minutes, seconds with unique outputs
所以我需要将秒转换为天、小时、分钟、秒。
但是我需要有独特的输出,如果它们返回零,则不将它们包含在响应中。
因此,如果输入 3600 秒,则需要返回 1 小时而没有其他任何内容。 如果响应返回 0,我如何跳过一行。
这是我到目前为止的代码。
import java.util.Scanner;
public class ps9 {
public static void main(String [] args){
Scanner in = new Scanner(System.in);
System.out.println("Enter number of seconds");
int input = in.nextInt();
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;
if (numberOfDays > 0) {
System.out.println(numberOfDays + " day(s)");
if (numberOfHours != 0)
System.out.println(numberOfHours + " hour(s)");
nextLine;
System.out.println(numberOfMinutes + " minute(s)");
System.out.println(numberOfSeconds + " second(s)");
}
else if (numberOfHours >= 0 )
{
System.out.println(numberOfHours +" hour(s)");
System.out.println(numberOfMinutes + " minute(s)");
System.out.println(numberOfSeconds + " second(s)");
}
else if (numberOfMinutes >= 0 )
{
System.out.println(numberOfMinutes + " minute(s)");
System.out.println(numberOfSeconds + " second(s)");
}
else if (numberOfSeconds >= 0)
{
System.out.println(numberOfSeconds + " second(s)");
}
}
}
由于您只想在输出为 0 时跳过输出,因此请使用一系列if
语句而不是if-else
,因为您希望彼此独立地执行这些语句。
这将减少可能的代码重复
Duration d = Duration.ofSeconds(3660);
long days = d.toDays();
d = d.minusDays(days);
long hours = d.toHours();
d = d.minusHours(hours);
long mins = d.toMinutes();
d = d.minusMinutes(mins);
long seconds = d.getSeconds();
if (days > 0) {
System.out.println(days + " day(s)");
}
if (hours > 0) {
System.out.println(hours + " hour(s)");
}
if (mins > 0) {
System.out.println(mins + " min(s)");
}
if (seconds > 0) {
System.out.println(seconds + " second(s)");
}
请注意,我很懒,当涉及到日期/时间操作时,我使用了可用的库
您可以检查此代码,但我没有包括秒。 我minutes
就开始了。
对于秒,您可以使用timeInterval
来获取秒的%
。
public static final String INVALID_MESSAGE = "Invalid Value";
public static void printYearsAndDays(long minutes) {
if (minutes < 0) {
System.out.println(INVALID_MESSAGE);
} else {
int timeInterval = 60;
int dayInterval = 24;
int yearInterval = 365;
long remainingMinutes = minutes % timeInterval;
long remainingHours = (minutes / timeInterval) % dayInterval;
long remainingDays = ((minutes / timeInterval) / dayInterval) % yearInterval;
long remainingYears = ((minutes / timeInterval) / dayInterval) / yearInterval;
String minutesDisplay = remainingMinutes + "min ";
String hoursDisplay = remainingHours + "h ";
String daysDisplay = remainingDays + " d";
String yearsDisplay = remainingYears + " y";
System.out.println(minutes+ " min = "+ yearsDisplay + " and " + daysDisplay);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.