2016-02-24 21:11:14 +00:00
|
|
|
package com.bytezone.diskbrowser.utilities;
|
2015-06-01 09:35:51 +00:00
|
|
|
|
2022-08-10 08:06:43 +00:00
|
|
|
import java.time.DateTimeException;
|
2021-04-17 02:14:06 +00:00
|
|
|
import java.time.LocalDateTime;
|
2021-05-02 04:45:26 +00:00
|
|
|
import java.time.format.DateTimeFormatter;
|
2021-04-17 02:14:06 +00:00
|
|
|
|
2019-11-07 03:06:09 +00:00
|
|
|
// -----------------------------------------------------------------------------------//
|
2021-05-21 02:57:03 +00:00
|
|
|
public class DateTime
|
2019-11-07 03:06:09 +00:00
|
|
|
// -----------------------------------------------------------------------------------//
|
2015-06-01 09:35:51 +00:00
|
|
|
{
|
2022-08-10 08:06:43 +00:00
|
|
|
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");
|
2015-06-01 09:35:51 +00:00
|
|
|
|
|
|
|
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;
|
|
|
|
|
2019-11-07 03:06:09 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2015-06-01 09:35:51 +00:00
|
|
|
public DateTime (byte[] buffer, int ptr)
|
2019-11-07 03:06:09 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2015-06-01 09:35:51 +00:00
|
|
|
{
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2019-11-07 03:06:09 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2015-06-01 09:35:51 +00:00
|
|
|
public String format ()
|
2019-11-07 03:06:09 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2015-06-01 09:35:51 +00:00
|
|
|
{
|
2022-08-10 08:06:43 +00:00
|
|
|
return String.format ("%02d:%02d:%02d %s %d %s %d", hour, minute, second, days[weekDay], day,
|
|
|
|
months[month], year);
|
2015-06-01 09:35:51 +00:00
|
|
|
}
|
|
|
|
|
2021-05-02 04:45:26 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
public String format2 ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
LocalDateTime dateTime = getLocalDateTime ();
|
|
|
|
return dateTime == null ? "" : getLocalDateTime ().format (dtf);
|
|
|
|
}
|
|
|
|
|
2021-04-17 02:14:06 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
public LocalDateTime getLocalDateTime ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
2022-08-10 08:06:43 +00:00
|
|
|
try
|
|
|
|
{
|
|
|
|
int adjustedYear = year + (year > 70 ? 1900 : 2000);
|
|
|
|
return LocalDateTime.of (adjustedYear, month + 1, day + 1, hour, minute);
|
|
|
|
}
|
|
|
|
catch (DateTimeException e)
|
|
|
|
{
|
2021-04-17 04:41:36 +00:00
|
|
|
return null;
|
2022-08-10 08:06:43 +00:00
|
|
|
}
|
2021-04-17 02:14:06 +00:00
|
|
|
}
|
|
|
|
|
2019-11-07 03:06:09 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2015-06-01 09:35:51 +00:00
|
|
|
@Override
|
|
|
|
public String toString ()
|
2019-11-07 03:06:09 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2015-06-01 09:35:51 +00:00
|
|
|
{
|
2022-08-10 08:06:43 +00:00
|
|
|
return "DateTime [second=" + second + ", minute=" + minute + ", hour=" + hour + ", year=" + year
|
|
|
|
+ ", day=" + day + ", month=" + month + ", weekDay=" + weekDay + "]";
|
2015-06-01 09:35:51 +00:00
|
|
|
}
|
|
|
|
}
|