package net.knarcraft.dynmapcitizens.util; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import static net.knarcraft.dynmapcitizens.formatting.StringFormatter.replacePlaceholder; /** * A helper class for time formatting */ public class TimeFormatter { /** * Gets a datetime string for the given timestamp * * @param timestamp
A timestamp in milliseconds
* @returnA datetime string
*/ public static String formatTimestamp(long timestamp) { DateFormat format = new SimpleDateFormat("dd MM yyyy HH:mm:ss"); Date date = new Date(timestamp); return format.format(date); } /** * Gets the string used for displaying this sign's duration * * @returnThe string used for displaying this sign's duration
*/ public static String getDurationString(long duration) { if (duration == 0) { return "immediately"; } else { double minute = 60; double hour = minute * 60; double day = hour * 24; double week = day * 7; double month = day * 30; double year = day * 365; double decade = year * 10; MapThe number to round
* @returnThe rounded number
*/ private static double round(double number) { return Math.round(number * 100.0) / 100.0; } /** * Formats a duration string * * @param durationThe duration to display
* @param translatableMessageThe time unit to display
* @param castToIntWhether to cast the duration to an int
* @returnThe formatted duration string
*/ private static String formatDurationString(double duration, String translatableMessage, boolean castToInt) { String durationFormat = "{duration} {unit}"; durationFormat = replacePlaceholder(durationFormat, "{unit}", translatableMessage); return replacePlaceholder(durationFormat, "{duration}", castToInt ? String.valueOf((int) duration) : String.valueOf(duration)); } }