标签:
/*对日期的处理,获取时间,星期,等等
*/
package dk.util; import java.util.Calendar; import java.util.Date; public class date { private Date dt; private int year; private int month; private int day; private int hour; private int min; private int sec; public String chnTime() { Date localDate = new Date(); String str = localDate.toLocaleString(); int i = Integer.parseInt(str.substring(str.indexOf(" ") + 1, str.indexOf(":"))); if (i >= 0) str = "凌晨"; if (i >= 7) str = "早晨"; if (i >= 9) str = "上午"; if (i >= 12) str = "中午"; if (i >= 14) str = "下午"; if (i >= 18) str = "晚上"; if (i >= 22) str = "午夜"; return str; } public boolean leapYear(int paramInt) { return (paramInt % 4 == 0) && ((paramInt % 100 != 0) || (paramInt % 400 == 0)); } public boolean leapYear(String paramString) { if (!isDate(paramString)) { return false; } int i = Year(paramString); return (i % 4 == 0) && ((i % 100 != 0) || (i % 400 == 0)); } public boolean leapYear(Date paramDate) { int i = Year(paramDate); return (i % 4 == 0) && ((i % 100 != 0) || (i % 400 == 0)); } public boolean isDate(String paramString) { String str1 = paramString; StrManager localStrManager = new StrManager(); String[] arrayOfString1 = localStrManager.Split(str1, " "); try { String[] arrayOfString2; if (arrayOfString1.length == 1) { arrayOfString2 = localStrManager.Split(str1, "-"); this.year = Integer.parseInt(arrayOfString2[0]); this.month = (Integer.parseInt(arrayOfString2[1]) - 1); this.day = Integer.parseInt(arrayOfString2[2]); if ((this.month > 11) || (this.month < 0)) { return false; } if ((this.month % 2 != 0) && (((this.month > 6) && ((this.day > 31) || (this.day < 1))) || ((this.month <= 6) && ((this.day > 30) || (this.day < 1))))) { return false; } if ((this.month % 2 == 0) && (((this.month > 6) && ((this.day > 30) || (this.day < 1))) || ((this.month <= 6) && ((this.day > 31) || (this.day < 1))))) { return false; } if ((leapYear(this.year) == true) && (this.month == 1) && ((this.day > 29) || (this.day < 1))) { return false; } if ((!leapYear(this.year)) && (this.month == 1) && ((this.day > 28) || (this.day < 1))) { return false; } } else { String str2 = arrayOfString1[0]; String str3 = arrayOfString1[1]; arrayOfString2 = localStrManager.Split(str2, "-"); String[] arrayOfString3 = localStrManager.Split(str3, ":"); this.year = Integer.parseInt(arrayOfString2[0]); this.month = (Integer.parseInt(arrayOfString2[1]) - 1); this.day = Integer.parseInt(arrayOfString2[2]); this.hour = Integer.parseInt(arrayOfString3[0]); this.min = Integer.parseInt(arrayOfString3[1]); this.sec = Integer.parseInt(arrayOfString3[2]); if ((this.month > 11) || (this.month < 0)) { return false; } if ((this.month % 2 != 0) && (((this.month > 6) && ((this.day > 31) || (this.day < 1))) || ((this.month <= 6) && ((this.day > 30) || (this.day < 1))))) { return false; } if ((this.month % 2 == 0) && (((this.month > 6) && ((this.day > 30) || (this.day < 1))) || ((this.month <= 6) && ((this.day > 31) || (this.day < 1))))) { return false; } if ((leapYear(this.year) == true) && (this.month == 1) && ((this.day > 29) || (this.day < 1))) { return false; } if ((!leapYear(this.year)) && (this.month == 1) && ((this.day > 28) || (this.day < 1))) { return false; } if ((this.hour > 23) || (this.hour < 0) || (this.min > 59) || (this.min < 0) || (this.sec > 59) || (this.sec < 0)) return false; } } catch (Exception localException) { return false; } return true; } public Date toDate(String paramString) { String str1 = paramString; if (!isDate(str1)) { return new Date(); } StrManager localStrManager = new StrManager(); String[] arrayOfString1 = localStrManager.Split(str1, " "); String[] arrayOfString2; if (arrayOfString1.length == 1) { arrayOfString2 = localStrManager.Split(str1, "-"); this.year = (Integer.parseInt(arrayOfString2[0]) - 1900); this.month = (Integer.parseInt(arrayOfString2[1]) - 1); this.day = Integer.parseInt(arrayOfString2[2]); this.dt = new Date(this.year, this.month, this.day); } else { String str2 = arrayOfString1[0]; String str3 = arrayOfString1[1]; arrayOfString2 = localStrManager.Split(str2, "-"); String[] arrayOfString3 = localStrManager.Split(str3, ":"); this.year = (Integer.parseInt(arrayOfString2[0]) - 1900); this.month = (Integer.parseInt(arrayOfString2[1]) - 1); this.day = Integer.parseInt(arrayOfString2[2]); this.hour = Integer.parseInt(arrayOfString3[0]); this.min = Integer.parseInt(arrayOfString3[1]); this.sec = Integer.parseInt(arrayOfString3[2]); this.dt = new Date(this.year, this.month, this.day, this.hour, this.min, this.sec); } return this.dt; } public int Year(Date paramDate) { if (paramDate.getYear() < 1900) { return paramDate.getYear() + 1900; } return paramDate.getYear(); } public int Year(String paramString) { if (isDate(paramString)) { Date localDate = toDate(paramString); if (localDate.getYear() < 1900) { return localDate.getYear() + 1900; } return localDate.getYear(); } return -1; } public int Quarter(Date paramDate) { if (Month(paramDate) < 4) { return 1; } if ((Month(paramDate) < 7) && (Month(paramDate) > 3)) { return 2; } if ((Month(paramDate) < 10) && (Month(paramDate) > 6)) { return 3; } if ((Month(paramDate) < 13) && (Month(paramDate) > 9)) { return 4; } return -1; } public int Quarter(String paramString) { if (!isDate(paramString)) { return -1; } Date localDate = toDate(paramString); if (Month(localDate) < 4) { return 1; } if ((Month(localDate) < 7) && (Month(localDate) > 3)) { return 2; } if ((Month(localDate) < 10) && (Month(localDate) > 6)) { return 3; } if ((Month(localDate) < 13) && (Month(localDate) > 9)) { return 4; } return -1; } public int Month(Date paramDate) { return paramDate.getMonth() + 1; } public int Month(String paramString) { if (isDate(paramString)) { Date localDate = toDate(paramString); return localDate.getMonth() + 1; } return -1; } public int Day(Date paramDate) { return paramDate.getDate(); } public int Day(String paramString) { if (isDate(paramString)) { Date localDate = toDate(paramString); return localDate.getDate(); } return -1; } public int Hour(Date paramDate) { return paramDate.getHours(); } public int Hour(String paramString) { if (isDate(paramString)) { Date localDate = toDate(paramString); return localDate.getHours(); } return -1; } public int Minute(Date paramDate) { return paramDate.getMinutes(); } public int Minute(String paramString) { if (isDate(paramString)) { Date localDate = toDate(paramString); return localDate.getMinutes(); } return -1; } public int Second(Date paramDate) { return paramDate.getSeconds(); } public int Second(String paramString) { if (isDate(paramString)) { Date localDate = toDate(paramString); return localDate.getSeconds(); } return -1; } public String getWeek(Date paramDate) { Calendar localCalendar = Calendar.getInstance(); localCalendar.setTime(paramDate); localCalendar.setFirstDayOfWeek(1); int i = localCalendar.get(7); switch (i) { case 1: return "星期天"; case 2: return "星期一"; case 3: return "星期二"; case 4: return "星期三"; case 5: return "星期四"; case 6: return "星期五"; }return "星期六"; } public String getWeek(String paramString) { if (!isDate(paramString)) return paramString + ":不是正确的日期!"; return getWeek(toDate(paramString)); } public int dayOfYear(Date paramDate) { Calendar localCalendar = Calendar.getInstance(); localCalendar.setTime(paramDate); return localCalendar.get(6); } public int dayOfYear(String paramString) { if (isDate(paramString)) { Calendar localCalendar = Calendar.getInstance(); localCalendar.setTime(toDate(paramString)); return localCalendar.get(6); } return -1; } public String date2String(Date paramDate, boolean paramBoolean) { String str = paramDate.toLocaleString(); if (paramBoolean) { return str; } return str.substring(0, str.indexOf(" ")); } public Date dateAdd(String paramString, int paramInt, Date paramDate) { this.year = paramDate.getYear(); this.month = paramDate.getMonth(); this.day = paramDate.getDate(); this.hour = paramDate.getHours(); this.min = paramDate.getMinutes(); this.sec = paramDate.getSeconds(); if (paramString.equals("y")) this.year += paramInt; if (paramString.equals("q")) this.month += paramInt * 3; if (paramString.equals("m")) this.month += paramInt; if (paramString.equals("w")) this.day += paramInt * 7; if (paramString.equals("d")) this.day += paramInt; if (paramString.equals("h")) this.hour += paramInt; if (paramString.equals("n")) this.min += paramInt; if (paramString.equals("s")) { this.sec += paramInt; } return new Date(this.year, this.month, this.day, this.hour, this.min, this.sec); } public Date dateAdd(String paramString1, int paramInt, String paramString2) { if (!isDate(paramString2)) { return new Date(); } return dateAdd(paramString1, paramInt, toDate(paramString2)); } public int dateDiff(String paramString, Date paramDate1, Date paramDate2) { int i = Year(paramDate1); int j = Month(paramDate1); int k = Day(paramDate1); int m = Hour(paramDate1); int n = Minute(paramDate1); int i1 = Second(paramDate1); int i2 = Year(paramDate2); int i3 = Month(paramDate2); int i4 = Day(paramDate2); int i5 = Hour(paramDate2); int i6 = Minute(paramDate2); int i7 = Second(paramDate2); int i8 = 0; int i9 = 0; int i10 = 0; int i11 = 0; int i12 = 0; int i13 = 0; int i14 = 0; int i15 = 0; int i16 = 0; i8 = i - i2; if (paramString.equals("y")) { return i8; } int i17 = i8; if (i8 < 0) i8 = -i8; for (i16 = 0; i16 < i8; i16++) { if (i17 < 0) i9 -= 4; else i9 += 4; } i9 = i9 + Quarter(paramDate1) - Quarter(paramDate2); if (paramString.equals("q")) { return i9; } if (paramDate1.before(paramDate2)) i10 = (i - i2) * 12 + j - i3; else { i10 = -((i2 - i) * 12 + i3 - j); } if (paramString.equals("m")) { return i10; } i12 = 0; for (i16 = 0; i16 < i8; i16++) { if (leapYear(i2 + i16)) { if (i17 < 0) i12 -= 366; else i12 += 366; } else if (i17 < 0) i12 -= 365; else { i12 += 365; } } i12 = dayOfYear(paramDate1) - dayOfYear(paramDate2) + i12; if (paramString.equals("d")) { return i12; } i13 = i12 * 24 + m - i5; if (paramString.equals("h")) { return i13; } i14 = i13 * 60 + n - i6; if (paramString.equals("n")) { return i14; } i15 = i14 * 60 + i1 - i7; if (paramString.equals("s")) { return i15; } return -1; } public int dateDiff(String paramString1, String paramString2, String paramString3) { if ((!isDate(paramString2)) || (!isDate(paramString3))) { return -1; } Date localDate1 = toDate(paramString2); Date localDate2 = toDate(paramString3); return dateDiff(paramString1, localDate1, localDate2); } }
标签:
原文地址:http://www.cnblogs.com/driftking/p/5148405.html