blob: 6e3b5694314e3a2cdd862f0a29523440b443dba9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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;
}
}
|