|
|
|
@ -8,255 +8,268 @@ import java.util.concurrent.TimeUnit; |
|
|
|
|
|
|
|
public class JDate { |
|
|
|
|
|
|
|
private static String defaultDateFormat = "dd-MM-yyyy"; |
|
|
|
private static String defaultTimeFormat = "HH:mm:ss"; |
|
|
|
|
|
|
|
public static void setDefaultDateFormat(String format) { |
|
|
|
defaultDateFormat = format; |
|
|
|
} |
|
|
|
public static String getDefaultDateFormat() { |
|
|
|
return defaultDateFormat; |
|
|
|
} |
|
|
|
|
|
|
|
public static void setDefaultTimeFormat(String format) { |
|
|
|
defaultTimeFormat = format; |
|
|
|
} |
|
|
|
public static String getDefaultTimeFormat() { |
|
|
|
return defaultTimeFormat; |
|
|
|
} |
|
|
|
|
|
|
|
/* --- Date operations --- */ |
|
|
|
public static Date getDate(String date) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(defaultDateFormat); |
|
|
|
Date result = null; |
|
|
|
try { |
|
|
|
result = sdf.parse(date); |
|
|
|
} catch (ParseException e) { |
|
|
|
System.err.println("Error getting quick date!"); |
|
|
|
} |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
public static Date getDate(String date, String time){ |
|
|
|
return setTime(getDate(date), time); |
|
|
|
} |
|
|
|
|
|
|
|
public static String getDate(Date date) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(defaultDateFormat); |
|
|
|
String result = sdf.format(date); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
public static Date setDate(Date date, String set){ |
|
|
|
if (date == null) { |
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
Calendar setter = Calendar.getInstance(); |
|
|
|
our.setTime(date); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(defaultDateFormat); |
|
|
|
try { |
|
|
|
setter.setTime(sdf.parse(set)); |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
our.set(setter.get(Calendar.YEAR), setter.get(Calendar.MONTH), setter.get(Calendar.DAY_OF_MONTH)); |
|
|
|
return our.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date setDate(Date date, int day, int month, int year){ |
|
|
|
if ((date == null)|| |
|
|
|
(day > 31)||(day < 1)|| |
|
|
|
(month > 12)||(month < 1)) { |
|
|
|
|
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
|
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
our.setTime(date); |
|
|
|
|
|
|
|
our.set(Calendar.DAY_OF_MONTH, day); |
|
|
|
our.set(Calendar.MONTH, month); |
|
|
|
our.set(Calendar.YEAR, year); |
|
|
|
|
|
|
|
return our.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
/* --- Time operations --- */ |
|
|
|
public static String getTime(Date date) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(defaultTimeFormat); |
|
|
|
String result = sdf.format(date); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
public static Date setTime(Date date, String set){ |
|
|
|
if (date == null) { |
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
Calendar setter = Calendar.getInstance(); |
|
|
|
our.setTime(date); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(defaultTimeFormat); |
|
|
|
try { |
|
|
|
setter.setTime(sdf.parse(set)); |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
our.set(Calendar.HOUR_OF_DAY, setter.get(Calendar.HOUR_OF_DAY)); |
|
|
|
our.set(Calendar.MINUTE, setter.get(Calendar.MINUTE)); |
|
|
|
our.set(Calendar.SECOND, 0); |
|
|
|
return our.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date setTime(Date date, int hours, int minutes, int seconds){ |
|
|
|
if ((date == null)|| |
|
|
|
(hours > 23)||(hours < 0)|| |
|
|
|
(minutes > 59)||(minutes < 0)|| |
|
|
|
(seconds > 59)||(seconds < 0)) { |
|
|
|
|
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
|
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
our.setTime(date); |
|
|
|
|
|
|
|
our.set(Calendar.HOUR_OF_DAY, hours); |
|
|
|
our.set(Calendar.MINUTE, minutes); |
|
|
|
our.set(Calendar.SECOND, seconds); |
|
|
|
|
|
|
|
return our.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date nullTime(Date date){ |
|
|
|
if (date == null) { |
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
our.setTime(date); |
|
|
|
our.set(Calendar.HOUR_OF_DAY, 0); |
|
|
|
our.set(Calendar.MINUTE, 0); |
|
|
|
our.set(Calendar.SECOND, 0); |
|
|
|
our.set(Calendar.MILLISECOND, 0); |
|
|
|
return our.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static int getHours(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.HOUR_OF_DAY); |
|
|
|
} |
|
|
|
|
|
|
|
public static int getMinutes(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.MINUTE); |
|
|
|
} |
|
|
|
|
|
|
|
public static int getSeconds(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.SECOND); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incHours(Date date, int hours) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.HOUR_OF_DAY, hours); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incMinutes(Date date, int minutes) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.MINUTE, minutes); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incSeconds(Date date, int seconds) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.SECOND, seconds); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
/* --- Compare operations --- */ |
|
|
|
public static long getDifferenceDays(Date from, Date to) { |
|
|
|
long msDiff = to.getTime() - from.getTime(); |
|
|
|
long diff = TimeUnit.DAYS.convert(msDiff, TimeUnit.MILLISECONDS); |
|
|
|
|
|
|
|
return diff; |
|
|
|
} |
|
|
|
|
|
|
|
public static int getDifferenceYears(Date from, Date to) { |
|
|
|
Calendar dayFrom = Calendar.getInstance(); |
|
|
|
dayFrom.setTime(from); |
|
|
|
Calendar dayTo = Calendar.getInstance(); |
|
|
|
dayTo.setTime(to); |
|
|
|
|
|
|
|
int diff = dayTo.get(Calendar.YEAR) - dayFrom.get(Calendar.YEAR); |
|
|
|
dayTo.set(Calendar.YEAR, dayFrom.get(Calendar.YEAR)); |
|
|
|
|
|
|
|
if (dayFrom.compareTo(dayTo) >= 0) { |
|
|
|
diff--; |
|
|
|
} |
|
|
|
|
|
|
|
return diff; |
|
|
|
} |
|
|
|
|
|
|
|
/* --- Date operations with parts--- */ |
|
|
|
// 1 - Moday, 2 - Tuesday, ... 7 - Sunday |
|
|
|
public static int getWeekDay(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.DAY_OF_WEEK); |
|
|
|
} |
|
|
|
|
|
|
|
public static int getDay(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.DAY_OF_MONTH); |
|
|
|
} |
|
|
|
|
|
|
|
// 0-January, 1-February, ... 11-December |
|
|
|
public static int getMonth(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.MONTH); |
|
|
|
} |
|
|
|
|
|
|
|
// human-like month numeration |
|
|
|
public static int getCorrectMonth(Date date) { |
|
|
|
return getMonth(date) + 1; |
|
|
|
} |
|
|
|
|
|
|
|
public static int getYear(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.YEAR); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incDay(Date date, int days) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.DAY_OF_MONTH, days); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incMonth(Date date, int months) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.MONTH, months); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incYear(Date date, int years) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.YEAR, years); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
//this is comment |
|
|
|
private static String defaultDateFormat = "dd-MM-yyyy"; |
|
|
|
private static String defaultTimeFormat = "HH:mm:ss"; |
|
|
|
|
|
|
|
public static void setDefaultDateFormat(String format) { |
|
|
|
defaultDateFormat = format; |
|
|
|
} |
|
|
|
|
|
|
|
public static String getDefaultDateFormat() { |
|
|
|
return defaultDateFormat; |
|
|
|
} |
|
|
|
|
|
|
|
public static void setDefaultTimeFormat(String format) { |
|
|
|
defaultTimeFormat = format; |
|
|
|
} |
|
|
|
|
|
|
|
public static String getDefaultTimeFormat() { |
|
|
|
return defaultTimeFormat; |
|
|
|
} |
|
|
|
|
|
|
|
/* --- Date operations --- */ |
|
|
|
public static Date createDate(int day, int month, int year) { |
|
|
|
if ((day > 31) || (day < 1) || (month > 11) || (month < 0)) { |
|
|
|
|
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
|
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
|
|
|
|
our.set(Calendar.DAY_OF_MONTH, day); |
|
|
|
our.set(Calendar.MONTH, month); |
|
|
|
our.set(Calendar.YEAR, year); |
|
|
|
|
|
|
|
return JDate.nullTime(our.getTime()); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date getDate(String date) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(defaultDateFormat); |
|
|
|
Date result = null; |
|
|
|
try { |
|
|
|
result = sdf.parse(date); |
|
|
|
} catch (ParseException e) { |
|
|
|
System.err.println("Error getting quick date!"); |
|
|
|
} |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
public static Date getDate(String date, String time) { |
|
|
|
return setTime(getDate(date), time); |
|
|
|
} |
|
|
|
|
|
|
|
public static String getDate(Date date) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(defaultDateFormat); |
|
|
|
String result = sdf.format(date); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
public static Date setDate(Date date, String set) { |
|
|
|
if (date == null) { |
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
Calendar setter = Calendar.getInstance(); |
|
|
|
our.setTime(date); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(defaultDateFormat); |
|
|
|
try { |
|
|
|
setter.setTime(sdf.parse(set)); |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
our.set(setter.get(Calendar.YEAR), setter.get(Calendar.MONTH), setter.get(Calendar.DAY_OF_MONTH)); |
|
|
|
return our.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date setDate(Date date, int day, int month, int year) { |
|
|
|
if ((date == null) || (day > 31) || (day < 1) || (month > 11) || (month < 0)) { |
|
|
|
|
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
|
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
our.setTime(date); |
|
|
|
|
|
|
|
our.set(Calendar.DAY_OF_MONTH, day); |
|
|
|
our.set(Calendar.MONTH, month); |
|
|
|
our.set(Calendar.YEAR, year); |
|
|
|
|
|
|
|
return our.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
/* --- Time operations --- */ |
|
|
|
public static String getTime(Date date) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(defaultTimeFormat); |
|
|
|
String result = sdf.format(date); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
public static Date setTime(Date date, String set) { |
|
|
|
if (date == null) { |
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
Calendar setter = Calendar.getInstance(); |
|
|
|
our.setTime(date); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(defaultTimeFormat); |
|
|
|
try { |
|
|
|
setter.setTime(sdf.parse(set)); |
|
|
|
} catch (ParseException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
our.set(Calendar.HOUR_OF_DAY, setter.get(Calendar.HOUR_OF_DAY)); |
|
|
|
our.set(Calendar.MINUTE, setter.get(Calendar.MINUTE)); |
|
|
|
our.set(Calendar.SECOND, 0); |
|
|
|
return our.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date setTime(Date date, int hours, int minutes, int seconds) { |
|
|
|
if ((date == null) || (hours > 23) || (hours < 0) || (minutes > 59) || (minutes < 0) || (seconds > 59) |
|
|
|
|| (seconds < 0)) { |
|
|
|
|
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
|
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
our.setTime(date); |
|
|
|
|
|
|
|
our.set(Calendar.HOUR_OF_DAY, hours); |
|
|
|
our.set(Calendar.MINUTE, minutes); |
|
|
|
our.set(Calendar.SECOND, seconds); |
|
|
|
|
|
|
|
return our.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date nullTime(Date date) { |
|
|
|
if (date == null) { |
|
|
|
throw new IllegalArgumentException(); |
|
|
|
} |
|
|
|
Calendar our = Calendar.getInstance(); |
|
|
|
our.setTime(date); |
|
|
|
our.set(Calendar.HOUR_OF_DAY, 0); |
|
|
|
our.set(Calendar.MINUTE, 0); |
|
|
|
our.set(Calendar.SECOND, 0); |
|
|
|
our.set(Calendar.MILLISECOND, 0); |
|
|
|
return our.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static int getHours(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.HOUR_OF_DAY); |
|
|
|
} |
|
|
|
|
|
|
|
public static int getMinutes(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.MINUTE); |
|
|
|
} |
|
|
|
|
|
|
|
public static int getSeconds(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.SECOND); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incHours(Date date, int hours) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.HOUR_OF_DAY, hours); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incMinutes(Date date, int minutes) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.MINUTE, minutes); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incSeconds(Date date, int seconds) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.SECOND, seconds); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
/* --- Compare operations --- */ |
|
|
|
public static long getDifferenceDays(Date from, Date to) { |
|
|
|
long msDiff = to.getTime() - from.getTime(); |
|
|
|
long diff = TimeUnit.DAYS.convert(msDiff, TimeUnit.MILLISECONDS); |
|
|
|
|
|
|
|
return diff; |
|
|
|
} |
|
|
|
|
|
|
|
public static int getDifferenceYears(Date from, Date to) { |
|
|
|
Calendar dayFrom = Calendar.getInstance(); |
|
|
|
dayFrom.setTime(from); |
|
|
|
Calendar dayTo = Calendar.getInstance(); |
|
|
|
dayTo.setTime(to); |
|
|
|
|
|
|
|
int diff = dayTo.get(Calendar.YEAR) - dayFrom.get(Calendar.YEAR); |
|
|
|
dayTo.set(Calendar.YEAR, dayFrom.get(Calendar.YEAR)); |
|
|
|
|
|
|
|
if (dayFrom.compareTo(dayTo) >= 0) { |
|
|
|
diff--; |
|
|
|
} |
|
|
|
|
|
|
|
return diff; |
|
|
|
} |
|
|
|
|
|
|
|
/* --- Date operations with parts--- */ |
|
|
|
// 1 - Moday, 2 - Tuesday, ... 7 - Sunday |
|
|
|
public static int getWeekDay(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.DAY_OF_WEEK); |
|
|
|
} |
|
|
|
|
|
|
|
public static int getDay(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.DAY_OF_MONTH); |
|
|
|
} |
|
|
|
|
|
|
|
// 0-January, 1-February, ... 11-December |
|
|
|
public static int getMonth(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.MONTH); |
|
|
|
} |
|
|
|
|
|
|
|
// human-like month numeration |
|
|
|
public static int getCorrectMonth(Date date) { |
|
|
|
return getMonth(date) + 1; |
|
|
|
} |
|
|
|
|
|
|
|
public static int getYear(Date date) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
return day.get(Calendar.YEAR); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incDay(Date date, int days) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.DAY_OF_MONTH, days); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incMonth(Date date, int months) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.MONTH, months); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
public static Date incYear(Date date, int years) { |
|
|
|
Calendar day = Calendar.getInstance(); |
|
|
|
day.setTime(date); |
|
|
|
day.add(Calendar.YEAR, years); |
|
|
|
return day.getTime(); |
|
|
|
} |
|
|
|
|
|
|
|
// this is comment |
|
|
|
} |