package com.gmail.develop.jcant; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 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 }