From 254ee6f47eebfc00462c10756a92066e82cc1a96 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 21 Jun 2011 15:46:02 +0200 Subject: Initial commit --- source/com/c2kernel/utils/DateUtility.java | 118 +++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100755 source/com/c2kernel/utils/DateUtility.java (limited to 'source/com/c2kernel/utils/DateUtility.java') diff --git a/source/com/c2kernel/utils/DateUtility.java b/source/com/c2kernel/utils/DateUtility.java new file mode 100755 index 0000000..6e3b569 --- /dev/null +++ b/source/com/c2kernel/utils/DateUtility.java @@ -0,0 +1,118 @@ +package com.c2kernel.utils; +import com.c2kernel.common.GTimeStamp; +/** + * @version $Revision: 1.8 $ $Date: 2005/05/10 15:14:55 $ + * @author $Author: abranson $ + */ +public class DateUtility +{ + public static GTimeStamp setToNow(GTimeStamp date) + { + java.util.Calendar now = java.util.Calendar.getInstance(); + date.mYear = now.get(java.util.Calendar.YEAR); + date.mMonth = now.get(java.util.Calendar.MONTH) + 1; + date.mDay = now.get(java.util.Calendar.DAY_OF_MONTH); + date.mHour = now.get(java.util.Calendar.HOUR_OF_DAY); + date.mMinute = now.get(java.util.Calendar.MINUTE); + date.mSecond = now.get(java.util.Calendar.SECOND); + date.mTimeOffset = now.get(java.util.Calendar.ZONE_OFFSET); + return date; + } + + public static String getSQLFormat(GTimeStamp timeStamp) + { + StringBuffer time = new StringBuffer().append(timeStamp.mYear).append("-"); + if (timeStamp.mMonth < 10) + time.append("0"); + time.append(timeStamp.mMonth).append("-"); + if (timeStamp.mDay < 10) + time.append("0"); + time.append(timeStamp.mDay).append(" "); + if (timeStamp.mHour < 10) + time.append("0"); + time.append(timeStamp.mHour).append(":"); + if (timeStamp.mMinute < 10) + time.append("0"); + time.append(timeStamp.mMinute).append(":"); + if (timeStamp.mSecond < 10) + time.append("0"); + time.append(timeStamp.mSecond); + return time.toString(); + } + + public static int getNbDayInYear(GTimeStamp date) + { + int centuary = date.mYear / 100; + int cdivby4 = centuary / 4; + int ydivby4 = date.mYear / 4; + if (centuary * 100 - date.mYear == 0) + { + if (centuary == cdivby4 * 4) + return 366; + else + return 365; + } + else if (date.mYear == ydivby4 * 4) + return 366; + else + return 365; + } + public static int getNbDayInMonth(GTimeStamp date) + { + switch (date.mMonth) + { + case 2 : + if (getNbDayInYear(date) == 365) + return 28; + else + return 29; + case 4 : + return 30; + case 6 : + return 30; + case 9 : + return 30; + case 11 : + return 30; + default : + return 31; + } + } + + public static long diff(GTimeStamp date1, GTimeStamp date2) + { + GTimeStamp tmp = new GTimeStamp(date1.mYear, date1.mMonth, date1.mDay, date1.mHour, date1.mMinute, date1.mSecond, date1.mTimeOffset); + while (tmp.mYear - date2.mYear < 0) + { + while (tmp.mMonth < 13) + { + tmp.mDay = tmp.mDay - getNbDayInMonth(tmp); + tmp.mMonth++; + } + tmp.mMonth = 1; + tmp.mYear++; + } + while (tmp.mYear - date2.mYear > 0) + { + while (tmp.mMonth > 1) + { + tmp.mMonth--; + tmp.mDay = tmp.mDay + getNbDayInMonth(tmp); + } + tmp.mMonth = 12; + tmp.mDay = tmp.mDay + getNbDayInMonth(tmp); + tmp.mYear--; + } + while (tmp.mMonth - date2.mMonth < 0) + { + tmp.mDay = tmp.mDay - getNbDayInMonth(tmp); + tmp.mMonth++; + } + while (tmp.mMonth - date2.mMonth > 0) + { + tmp.mMonth--; + tmp.mDay = tmp.mDay + getNbDayInMonth(tmp); + } + return (((tmp.mDay - date2.mDay) * 24 + tmp.mHour - date2.mHour) * 60 + tmp.mMinute - date2.mMinute) * 60 + tmp.mSecond - date2.mSecond; + } +} -- cgit v1.2.3