dmolony-DiskBrowser/src/com/bytezone/diskbrowser/utilities/DateTime.java

78 lines
2.9 KiB
Java

package com.bytezone.diskbrowser.utilities;
import java.time.DateTimeException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
// -----------------------------------------------------------------------------------//
public class DateTime
// -----------------------------------------------------------------------------------//
{
private static String[] months =
{ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
private static String[] days =
{ "", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
private static final DateTimeFormatter dtf = DateTimeFormatter.ofPattern ("dd-LLL-yy HH:mm");
private final int second;
private final int minute;
private final int hour;
private final int year;
private final int day;
private final int month;
private final int weekDay;
// ---------------------------------------------------------------------------------//
public DateTime (byte[] buffer, int ptr)
// ---------------------------------------------------------------------------------//
{
second = buffer[ptr] & 0xFF;
minute = buffer[++ptr] & 0xFF;
hour = buffer[++ptr] & 0xFF;
year = buffer[++ptr] & 0xFF;
day = buffer[++ptr] & 0xFF;
month = buffer[++ptr] & 0xFF;
++ptr; // empty
weekDay = buffer[++ptr] & 0xFF;
}
// ---------------------------------------------------------------------------------//
public String format ()
// ---------------------------------------------------------------------------------//
{
return String.format ("%02d:%02d:%02d %s %d %s %d", hour, minute, second, days[weekDay], day,
months[month], year);
}
// ---------------------------------------------------------------------------------//
public String format2 ()
// ---------------------------------------------------------------------------------//
{
LocalDateTime dateTime = getLocalDateTime ();
return dateTime == null ? "" : getLocalDateTime ().format (dtf);
}
// ---------------------------------------------------------------------------------//
public LocalDateTime getLocalDateTime ()
// ---------------------------------------------------------------------------------//
{
try
{
int adjustedYear = year + (year > 70 ? 1900 : 2000);
return LocalDateTime.of (adjustedYear, month + 1, day + 1, hour, minute);
}
catch (DateTimeException e)
{
return null;
}
}
// ---------------------------------------------------------------------------------//
@Override
public String toString ()
// ---------------------------------------------------------------------------------//
{
return "DateTime [second=" + second + ", minute=" + minute + ", hour=" + hour + ", year=" + year
+ ", day=" + day + ", month=" + month + ", weekDay=" + weekDay + "]";
}
}