Files
HidekoBot/src/main/java/wtf/beatrice/hidekobot/util/FormatUtil.java
Beatrice Dellacà 656dff4b26
All checks were successful
continuous-integration/drone/push Build is passing
Refactor packages
2022-11-22 00:31:52 +01:00

51 lines
1.6 KiB
Java

package wtf.beatrice.hidekobot.util;
import wtf.beatrice.hidekobot.Cache;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
public class FormatUtil
{
/**
* Generate a nicely formatted uptime String that omits unnecessary data
* (e.g. 0 days, 0 hours, 4 minutes, 32 seconds -> 4m 32s)
*
* @return the formatter String
*/
public static String getNiceUptime()
{
LocalDateTime now = LocalDateTime.now();
long uptimeSeconds = ChronoUnit.SECONDS.between(Cache.getStartupTime(), now);
Duration uptime = Duration.ofSeconds(uptimeSeconds);
long seconds = uptime.toSecondsPart();
long minutes = uptime.toMinutesPart();
long hours = uptime.toHoursPart();
long days = uptime.toDays();
StringBuilder uptimeStringBuilder = new StringBuilder();
if(days == 0)
{
if(hours == 0)
{
if(minutes == 0)
{} else {
uptimeStringBuilder.append(minutes).append("m ");
}
} else {
uptimeStringBuilder.append(hours).append("h ");
uptimeStringBuilder.append(minutes).append("m ");
}
} else {
uptimeStringBuilder.append(days).append("d ");
uptimeStringBuilder.append(hours).append("h ");
uptimeStringBuilder.append(minutes).append("m ");
}
uptimeStringBuilder.append(seconds).append("s ");
return uptimeStringBuilder.toString();
}
}