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
|
|
}
|