From e5ce236eb52a852439c4b3f19e114b5922ab7105 Mon Sep 17 00:00:00 2001 From: Anton Isaev Date: Mon, 28 Oct 2019 20:21:01 +0200 Subject: [PATCH] add createDate(int, int, int) --- pom.xml | 2 +- .../java/com/gmail/develop/jcant/JDate.java | 515 +++++++++--------- .../com/gmail/develop/jcant/JDate.class | Bin 5901 -> 6126 bytes target/maven-archiver/pom.properties | 4 +- .../compile/default-compile/inputFiles.lst | 2 +- 5 files changed, 268 insertions(+), 255 deletions(-) diff --git a/pom.xml b/pom.xml index a8ee31e..3981d99 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.gmail.develop.jcant JDate - 1.8 + 1.9 jar JDate diff --git a/src/main/java/com/gmail/develop/jcant/JDate.java b/src/main/java/com/gmail/develop/jcant/JDate.java index f954eb7..0e9e671 100644 --- a/src/main/java/com/gmail/develop/jcant/JDate.java +++ b/src/main/java/com/gmail/develop/jcant/JDate.java @@ -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 } diff --git a/target/classes/com/gmail/develop/jcant/JDate.class b/target/classes/com/gmail/develop/jcant/JDate.class index 8125af626e8520801c48c59a6f164fb671cdabc6..d3640da1f69c1f9a1632b7228fe4b3df19c72040 100644 GIT binary patch literal 6126 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