/**
?日期類
?*?@date???2003-12-04
?*?
@version
?1.0
?
*/
import
?java.util.
*
;
import
?java.text.
*
;
import
?java.util.Calendar;
public
?
class
?VeDate?{
?
/**
??*?獲取現在時間
??*
??*?
@return
?返回時間類型?yyyy-MM-dd?HH:mm:ss
??
*/
?
public
?
static
?Date?getNowDate()?{
??Date?currentTime?
=
?
new
?Date();
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd?HH:mm:ss
"
);
??String?dateString?
=
?formatter.format(currentTime);
??ParsePosition?pos?
=
?
new
?ParsePosition(
8
);
??Date?currentTime_2?
=
?formatter.parse(dateString,?pos);
??
return
?currentTime_2;
?}
?
/**
??*?獲取現在時間
??*
??*?@return返回短時間格式?yyyy-MM-dd
??
*/
?
public
?
static
?Date?getNowDateShort()?{
??Date?currentTime?
=
?
new
?Date();
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??String?dateString?
=
?formatter.format(currentTime);
??ParsePosition?pos?
=
?
new
?ParsePosition(
8
);
??Date?currentTime_2?
=
?formatter.parse(dateString,?pos);
??
return
?currentTime_2;
?}
?
/**
??*?獲取現在時間
??*
??*?@return返回字符串格式?yyyy-MM-dd?HH:mm:ss
??
*/
?
public
?
static
?String?getStringDate()?{
??Date?currentTime?
=
?
new
?Date();
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd?HH:mm:ss
"
);
??String?dateString?
=
?formatter.format(currentTime);
??
return
?dateString;
?}
?
/**
??*?獲取現在時間
??*
??*?
@return
?返回短時間字符串格式yyyy-MM-dd
??
*/
?
public
?
static
?String?getStringDateShort()?{
??Date?currentTime?
=
?
new
?Date();
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??String?dateString?
=
?formatter.format(currentTime);
??
return
?dateString;
?}
?
/**
??*?獲取時間?小時:分;秒?HH:mm:ss
??*
??*?
@return
??
*/
?
public
?
static
?String?getTimeShort()?{
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
HH:mm:ss
"
);
??Date?currentTime?
=
?
new
?Date();
??String?dateString?
=
?formatter.format(currentTime);
??
return
?dateString;
?}
?
/**
??*?將長時間格式字符串轉換為時間?yyyy-MM-dd?HH:mm:ss
??*
??*?
@param
?strDate
??*?
@return
??
*/
?
public
?
static
?Date?strToDateLong(String?strDate)?{
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd?HH:mm:ss
"
);
??ParsePosition?pos?
=
?
new
?ParsePosition(
0
);
??Date?strtodate?
=
?formatter.parse(strDate,?pos);
??
return
?strtodate;
?}
?
/**
??*?將長時間格式時間轉換為字符串?yyyy-MM-dd?HH:mm:ss
??*
??*?
@param
?dateDate
??*?
@return
??
*/
?
public
?
static
?String?dateToStrLong(java.util.Date?dateDate)?{
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd?HH:mm:ss
"
);
??String?dateString?
=
?formatter.format(dateDate);
??
return
?dateString;
?}
?
/**
??*?將短時間格式時間轉換為字符串?yyyy-MM-dd
??*
??*?
@param
?dateDate
??*?
@param
?k
??*?
@return
??
*/
?
public
?
static
?String?dateToStr(java.util.Date?dateDate)?{
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??String?dateString?
=
?formatter.format(dateDate);
??
return
?dateString;
?}
?
/**
??*?將短時間格式字符串轉換為時間?yyyy-MM-dd
??*
??*?
@param
?strDate
??*?
@return
??
*/
?
public
?
static
?Date?strToDate(String?strDate)?{
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??ParsePosition?pos?
=
?
new
?ParsePosition(
0
);
??Date?strtodate?
=
?formatter.parse(strDate,?pos);
??
return
?strtodate;
?}
?
/**
??*?得到現在時間
??*
??*?
@return
??
*/
?
public
?
static
?Date?getNow()?{
??Date?currentTime?
=
?
new
?Date();
??
return
?currentTime;
?}
?
/**
??*?提取一個月中的最后一天
??*
??*?
@param
?day
??*?
@return
??
*/
?
public
?
static
?Date?getLastDate(
long
?day)?{
??Date?date?
=
?
new
?Date();
??
long
?date_3_hm?
=
?date.getTime()?
-
?
3600000
?
*
?
34
?
*
?day;
??Date?date_3_hm_date?
=
?
new
?Date(date_3_hm);
??
return
?date_3_hm_date;
?}
?
/**
??*?得到現在時間
??*
??*?
@return
?字符串?yyyyMMdd?HHmmss
??
*/
?
public
?
static
?String?getStringToday()?{
??Date?currentTime?
=
?
new
?Date();
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyyMMdd?HHmmss
"
);
??String?dateString?
=
?formatter.format(currentTime);
??
return
?dateString;
?}
?
/**
??*?得到現在小時
??
*/
?
public
?
static
?String?getHour()?{
??Date?currentTime?
=
?
new
?Date();
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd?HH:mm:ss
"
);
??String?dateString?
=
?formatter.format(currentTime);
??String?hour;
??hour?
=
?dateString.substring(
11
,?
13
);
??
return
?hour;
?}
?
/**
??*?得到現在分鐘
??*
??*?
@return
??
*/
?
public
?
static
?String?getTime()?{
??Date?currentTime?
=
?
new
?Date();
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd?HH:mm:ss
"
);
??String?dateString?
=
?formatter.format(currentTime);
??String?min;
??min?
=
?dateString.substring(
14
,?
16
);
??
return
?min;
?}
?
/**
??*?根據用戶傳入的時間表示格式,返回當前時間的格式?如果是yyyyMMdd,注意字母y不能大寫。
??*
??*?
@param
?sformat
??*????????????yyyyMMddhhmmss
??*?
@return
??
*/
?
public
?
static
?String?getUserDate(String?sformat)?{
??Date?currentTime?
=
?
new
?Date();
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(sformat);
??String?dateString?
=
?formatter.format(currentTime);
??
return
?dateString;
?}
?
/**
??*?二個小時時間間的差值,必須保證二個時間都是"HH:MM"的格式,返回字符型的分鐘
??
*/
?
public
?
static
?String?getTwoHour(String?st1,?String?st2)?{
??String[]?kk?
=
?
null
;
??String[]?jj?
=
?
null
;
??kk?
=
?st1.split(
"
:
"
);
??jj?
=
?st2.split(
"
:
"
);
??
if
?(Integer.parseInt(kk[
0
])?
<
?Integer.parseInt(jj[
0
]))
???
return
?
"
0
"
;
??
else
?{
???
double
?y?
=
?Double.parseDouble(kk[
0
])?
+
?Double.parseDouble(kk[
1
])?
/
?
60
;
???
double
?u?
=
?Double.parseDouble(jj[
0
])?
+
?Double.parseDouble(jj[
1
])?
/
?
60
;
???
if
?((y?
-
?u)?
>
?
0
)
????
return
?y?
-
?u?
+
?
""
;
???
else
????
return
?
"
0
"
;
??}
?}
?
/**
??*?得到二個日期間的間隔天數
??
*/
?
public
?
static
?String?getTwoDay(String?sj1,?String?sj2)?{
??SimpleDateFormat?myFormatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??
long
?day?
=
?
0
;
??
try
?{
???java.util.Date?date?
=
?myFormatter.parse(sj1);
???java.util.Date?mydate?
=
?myFormatter.parse(sj2);
???day?
=
?(date.getTime()?
-
?mydate.getTime())?
/
?(
24
?
*
?
60
?
*
?
60
?
*
?
1000
);
??}?
catch
?(Exception?e)?{
???
return
?
""
;
??}
??
return
?day?
+
?
""
;
?}
?
/**
??*?時間前推或后推分鐘,其中JJ表示分鐘.
??
*/
?
public
?
static
?String?getPreTime(String?sj1,?String?jj)?{
??SimpleDateFormat?format?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd?HH:mm:ss
"
);
??String?mydate1?
=
?
""
;
??
try
?{
???Date?date1?
=
?format.parse(sj1);
???
long
?Time?
=
?(date1.getTime()?
/
?
1000
)?
+
?Integer.parseInt(jj)?
*
?
60
;
???date1.setTime(Time?
*
?
1000
);
???mydate1?
=
?format.format(date1);
??}?
catch
?(Exception?e)?{
??}
??
return
?mydate1;
?}
?
/**
??*?得到一個時間延后或前移幾天的時間,nowdate為時間,delay為前移或后延的天數
??
*/
?
public
?
static
?String?getNextDay(String?nowdate,?String?delay)?{
??
try
{
??SimpleDateFormat?format?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??String?mdate?
=
?
""
;
??Date?d?
=
?strToDate(nowdate);
??
long
?myTime?
=
?(d.getTime()?
/
?
1000
)?
+
?Integer.parseInt(delay)?
*
?
24
?
*
?
60
?
*
?
60
;
??d.setTime(myTime?
*
?
1000
);
??mdate?
=
?format.format(d);
??
return
?mdate;
??}
catch
(Exception?e){
???
return
?
""
;
??}
?}
?
/**
??*?判斷是否潤年
??*
??*?
@param
?ddate
??*?
@return
??
*/
?
public
?
static
?
boolean
?isLeapYear(String?ddate)?{
??
/**
???*?詳細設計:?1.被400整除是閏年,否則:?2.不能被4整除則不是閏年?3.能被4整除同時不能被100整除則是閏年
???*?3.能被4整除同時能被100整除則不是閏年
???
*/
??Date?d?
=
?strToDate(ddate);
??GregorianCalendar?gc?
=
?(GregorianCalendar)?Calendar.getInstance();
??gc.setTime(d);
??
int
?year?
=
?gc.get(Calendar.YEAR);
??
if
?((year?
%
?
400
)?
==
?
0
)
???
return
?
true
;
??
else
?
if
?((year?
%
?
4
)?
==
?
0
)?{
???
if
?((year?
%
?
100
)?
==
?
0
)
????
return
?
false
;
???
else
????
return
?
true
;
??}?
else
???
return
?
false
;
?}
?
/**
??*?返回美國時間格式?26?Apr?2006
??*
??*?
@param
?str
??*?
@return
??
*/
?
public
?
static
?String?getEDate(String?str)?{
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??ParsePosition?pos?
=
?
new
?ParsePosition(
0
);
??Date?strtodate?
=
?formatter.parse(str,?pos);
??String?j?
=
?strtodate.toString();
??String[]?k?
=
?j.split(
"
?
"
);
??
return
?k[
2
]?
+
?k[
1
].toUpperCase()?
+
?k[
5
].substring(
2
,?
4
);
?}
?
/**
??*?獲取一個月的最后一天
??*
??*?
@param
?dat
??*?
@return
??
*/
?
public
?
static
?String?getEndDateOfMonth(String?dat)?{
//
?yyyy-MM-dd
??String?str?
=
?dat.substring(
0
,?
8
);
??String?month?
=
?dat.substring(
5
,?
7
);
??
int
?mon?
=
?Integer.parseInt(month);
??
if
?(mon?
==
?
1
?
||
?mon?
==
?
3
?
||
?mon?
==
?
5
?
||
?mon?
==
?
7
?
||
?mon?
==
?
8
?
||
?mon?
==
?
10
?
||
?mon?
==
?
12
)?{
???str?
+=
?
"
31
"
;
??}?
else
?
if
?(mon?
==
?
4
?
||
?mon?
==
?
6
?
||
?mon?
==
?
9
?
||
?mon?
==
?
11
)?{
???str?
+=
?
"
30
"
;
??}?
else
?{
???
if
?(isLeapYear(dat))?{
????str?
+=
?
"
29
"
;
???}?
else
?{
????str?
+=
?
"
28
"
;
???}
??}
??
return
?str;
?}
?
/**
??*?判斷二個時間是否在同一個周
??*
??*?
@param
?date1
??*?
@param
?date2
??*?
@return
??
*/
?
public
?
static
?
boolean
?isSameWeekDates(Date?date1,?Date?date2)?{
??Calendar?cal1?
=
?Calendar.getInstance();
??Calendar?cal2?
=
?Calendar.getInstance();
??cal1.setTime(date1);
??cal2.setTime(date2);
??
int
?subYear?
=
?cal1.get(Calendar.YEAR)?
-
?cal2.get(Calendar.YEAR);
??
if
?(
0
?
==
?subYear)?{
???
if
?(cal1.get(Calendar.WEEK_OF_YEAR)?
==
?cal2.get(Calendar.WEEK_OF_YEAR))
????
return
?
true
;
??}?
else
?
if
?(
1
?
==
?subYear?
&&
?
11
?
==
?cal2.get(Calendar.MONTH))?{
???
//
?如果12月的最后一周橫跨來年第一周的話則最后一周即算做來年的第一周
???
if
?(cal1.get(Calendar.WEEK_OF_YEAR)?
==
?cal2.get(Calendar.WEEK_OF_YEAR))
????
return
?
true
;
??}?
else
?
if
?(
-
1
?
==
?subYear?
&&
?
11
?
==
?cal1.get(Calendar.MONTH))?{
???
if
?(cal1.get(Calendar.WEEK_OF_YEAR)?
==
?cal2.get(Calendar.WEEK_OF_YEAR))
????
return
?
true
;
??}
??
return
?
false
;
?}
?
/**
??*?產生周序列,即得到當前時間所在的年度是第幾周
??*
??*?
@return
??
*/
?
public
?
static
?String?getSeqWeek()?{
??Calendar?c?
=
?Calendar.getInstance(Locale.CHINA);
??String?week?
=
?Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
??
if
?(week.length()?
==
?
1
)
???week?
=
?
"
0
"
?
+
?week;
??String?year?
=
?Integer.toString(c.get(Calendar.YEAR));
??
return
?year?
+
?week;
?}
?
/**
??*?獲得一個日期所在的周的星期幾的日期,如要找出2002年2月3日所在周的星期一是幾號
??*
??*?
@param
?sdate
??*?
@param
?num
??*?
@return
??
*/
?
public
?
static
?String?getWeek(String?sdate,?String?num)?{
??
//
?再轉換為時間
??Date?dd?
=
?VeDate.strToDate(sdate);
??Calendar?c?
=
?Calendar.getInstance();
??c.setTime(dd);
??
if
?(num.equals(
"
1
"
))?
//
?返回星期一所在的日期
???c.set(Calendar.DAY_OF_WEEK,?Calendar.MONDAY);
??
else
?
if
?(num.equals(
"
2
"
))?
//
?返回星期二所在的日期
???c.set(Calendar.DAY_OF_WEEK,?Calendar.TUESDAY);
??
else
?
if
?(num.equals(
"
3
"
))?
//
?返回星期三所在的日期
???c.set(Calendar.DAY_OF_WEEK,?Calendar.WEDNESDAY);
??
else
?
if
?(num.equals(
"
4
"
))?
//
?返回星期四所在的日期
???c.set(Calendar.DAY_OF_WEEK,?Calendar.THURSDAY);
??
else
?
if
?(num.equals(
"
5
"
))?
//
?返回星期五所在的日期
???c.set(Calendar.DAY_OF_WEEK,?Calendar.FRIDAY);
??
else
?
if
?(num.equals(
"
6
"
))?
//
?返回星期六所在的日期
???c.set(Calendar.DAY_OF_WEEK,?Calendar.SATURDAY);
??
else
?
if
?(num.equals(
"
0
"
))?
//
?返回星期日所在的日期
???c.set(Calendar.DAY_OF_WEEK,?Calendar.SUNDAY);
??
return
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
).format(c.getTime());
?}
?
/**
??*?根據一個日期,返回是星期幾的字符串
??*
??*?
@param
?sdate
??*?
@return
??
*/
?
public
?
static
?String?getWeek(String?sdate)?{
??
//
?再轉換為時間
??Date?date?
=
?VeDate.strToDate(sdate);
??Calendar?c?
=
?Calendar.getInstance();
??c.setTime(date);
??
//
?int?hour=c.get(Calendar.DAY_OF_WEEK);
??
//
?hour中存的就是星期幾了,其范圍?1~7
??
//
?1=星期日?7=星期六,其他類推
??
return
?
new
?SimpleDateFormat(
"
EEEE
"
).format(c.getTime());
?}
?
public
?
static
?String?getWeekStr(String?sdate){
??String?str?
=
?
""
;
??str?
=
?VeDate.getWeek(sdate);
??
if
(
"
1
"
.equals(str)){
???str?
=
?
"
星期日
"
;
??}
else
?
if
(
"
2
"
.equals(str)){
???str?
=
?
"
星期一
"
;
??}
else
?
if
(
"
3
"
.equals(str)){
???str?
=
?
"
星期二
"
;
??}
else
?
if
(
"
4
"
.equals(str)){
???str?
=
?
"
星期三
"
;
??}
else
?
if
(
"
5
"
.equals(str)){
???str?
=
?
"
星期四
"
;
??}
else
?
if
(
"
6
"
.equals(str)){
???str?
=
?
"
星期五
"
;
??}
else
?
if
(
"
7
"
.equals(str)){
???str?
=
?
"
星期六
"
;
??}
??
return
?str;
?}
?
/**
??*?兩個時間之間的天數
??*
??*?
@param
?date1
??*?
@param
?date2
??*?
@return
??
*/
?
public
?
static
?
long
?getDays(String?date1,?String?date2)?{
??
if
?(date1?
==
?
null
?
||
?date1.equals(
""
))
???
return
?
0
;
??
if
?(date2?
==
?
null
?
||
?date2.equals(
""
))
???
return
?
0
;
??
//
?轉換為標準時間
??SimpleDateFormat?myFormatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??java.util.Date?date?
=
?
null
;
??java.util.Date?mydate?
=
?
null
;
??
try
?{
???date?
=
?myFormatter.parse(date1);
???mydate?
=
?myFormatter.parse(date2);
??}?
catch
?(Exception?e)?{
??}
??
long
?day?
=
?(date.getTime()?
-
?mydate.getTime())?
/
?(
24
?
*
?
60
?
*
?
60
?
*
?
1000
);
??
return
?day;
?}
?
/**
??*?形成如下的日歷?,?根據傳入的一個時間返回一個結構?星期日?星期一?星期二?星期三?星期四?星期五?星期六?下面是當月的各個時間
??*?此函數返回該日歷第一行星期日所在的日期
??*
??*?
@param
?sdate
??*?
@return
??
*/
?
public
?
static
?String?getNowMonth(String?sdate)?{
??
//
?取該時間所在月的一號
??sdate?
=
?sdate.substring(
0
,?
8
)?
+
?
"
01
"
;
??
//
?得到這個月的1號是星期幾
??Date?date?
=
?VeDate.strToDate(sdate);
??Calendar?c?
=
?Calendar.getInstance();
??c.setTime(date);
??
int
?u?
=
?c.get(Calendar.DAY_OF_WEEK);
??String?newday?
=
?VeDate.getNextDay(sdate,?(
1
?
-
?u)?
+
?
""
);
??
return
?newday;
?}
?
/**
??*?取得數據庫主鍵?生成格式為yyyymmddhhmmss+k位隨機數
??*
??*?
@param
?k
??*????????????表示是取幾位隨機數,可以自己定
??
*/
?
public
?
static
?String?getNo(
int
?k)?{
??
return
?getUserDate(
"
yyyyMMddhhmmss
"
)?
+
?getRandom(k);
?}
?
/**
??*?返回一個隨機數
??*
??*?
@param
?i
??*?
@return
??
*/
?
public
?
static
?String?getRandom(
int
?i)?{
??Random?jjj?
=
?
new
?Random();
??
//
?int?suiJiShu?=?jjj.nextInt(9);
??
if
?(i?
==
?
0
)
???
return
?
""
;
??String?jj?
=
?
""
;
??
for
?(
int
?k?
=
?
0
;?k?
<
?i;?k
++
)?{
???jj?
=
?jj?
+
?jjj.nextInt(
9
);
??}
??
return
?jj;
?}
?
/**
??*
??*?
@param
?args
??
*/
?
public
?
static
?
boolean
?RightDate(String?date)?{
??SimpleDateFormat?sdf?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd?hh:mm:ss
"
);
??;
??
if
?(date?
==
?
null
)
???
return
?
false
;
??
if
?(date.length()?
>
?
10
)?{
???sdf?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd?hh:mm:ss
"
);
??}?
else
?{
???sdf?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??}
??
try
?{
???sdf.parse(date);
??}?
catch
?(ParseException?pe)?{
???
return
?
false
;
??}
??
return
?
true
;
?}
?
/**
*************************************************************************
??*?//nd=1表示返回的值中包含年度?//yf=1表示返回的值中包含月份?//rq=1表示返回的值中包含日期?//format表示返回的格式?1
??*?以年月日中文返回?2?以橫線-返回?//?3?以斜線/返回?4?以縮寫不帶其它符號形式返回?//?5?以點號.返回
??*************************************************************************
*/
?
public
?
static
?String?getStringDateMonth(String?sdate,?String?nd,?String?yf,?String?rq,?String?format)?{
??Date?currentTime?
=
?
new
?Date();
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??String?dateString?
=
?formatter.format(currentTime);
??String?s_nd?
=
?dateString.substring(
0
,?
4
);?
//
?年份
??String?s_yf?
=
?dateString.substring(
5
,?
7
);?
//
?月份
??String?s_rq?
=
?dateString.substring(
8
,?
10
);?
//
?日期
??String?sreturn?
=
?
""
;
??roc.util.MyChar?mc?
=
?
new
?roc.util.MyChar();
??
if
?(sdate?
==
?
null
?
||
?sdate.equals(
""
)?
||
?
!
mc.Isdate(sdate))?{?
//
?處理空值情況
???
if
?(nd.equals(
"
1
"
))?{
????sreturn?
=
?s_nd;
????
//
?處理間隔符
????
if
?(format.equals(
"
1
"
))
?????sreturn?
=
?sreturn?
+
?
"
年
"
;
????
else
?
if
?(format.equals(
"
2
"
))
?????sreturn?
=
?sreturn?
+
?
"
-
"
;
????
else
?
if
?(format.equals(
"
3
"
))
?????sreturn?
=
?sreturn?
+
?
"
/
"
;
????
else
?
if
?(format.equals(
"
5
"
))
?????sreturn?
=
?sreturn?
+
?
"
.
"
;
???}
???
//
?處理月份
???
if
?(yf.equals(
"
1
"
))?{
????sreturn?
=
?sreturn?
+
?s_yf;
????
if
?(format.equals(
"
1
"
))
?????sreturn?
=
?sreturn?
+
?
"
月
"
;
????
else
?
if
?(format.equals(
"
2
"
))
?????sreturn?
=
?sreturn?
+
?
"
-
"
;
????
else
?
if
?(format.equals(
"
3
"
))
?????sreturn?
=
?sreturn?
+
?
"
/
"
;
????
else
?
if
?(format.equals(
"
5
"
))
?????sreturn?
=
?sreturn?
+
?
"
.
"
;
???}
???
//
?處理日期
???
if
?(rq.equals(
"
1
"
))?{
????sreturn?
=
?sreturn?
+
?s_rq;
????
if
?(format.equals(
"
1
"
))
?????sreturn?
=
?sreturn?
+
?
"
日
"
;
???}
??}?
else
?{
???
//
?不是空值,也是一個合法的日期值,則先將其轉換為標準的時間格式
???sdate?
=
?roc.util.RocDate.getOKDate(sdate);
???s_nd?
=
?sdate.substring(
0
,?
4
);?
//
?年份
???s_yf?
=
?sdate.substring(
5
,?
7
);?
//
?月份
???s_rq?
=
?sdate.substring(
8
,?
10
);?
//
?日期
???
if
?(nd.equals(
"
1
"
))?{
????sreturn?
=
?s_nd;
????
//
?處理間隔符
????
if
?(format.equals(
"
1
"
))
?????sreturn?
=
?sreturn?
+
?
"
年
"
;
????
else
?
if
?(format.equals(
"
2
"
))
?????sreturn?
=
?sreturn?
+
?
"
-
"
;
????
else
?
if
?(format.equals(
"
3
"
))
?????sreturn?
=
?sreturn?
+
?
"
/
"
;
????
else
?
if
?(format.equals(
"
5
"
))
?????sreturn?
=
?sreturn?
+
?
"
.
"
;
???}
???
//
?處理月份
???
if
?(yf.equals(
"
1
"
))?{
????sreturn?
=
?sreturn?
+
?s_yf;
????
if
?(format.equals(
"
1
"
))
?????sreturn?
=
?sreturn?
+
?
"
月
"
;
????
else
?
if
?(format.equals(
"
2
"
))
?????sreturn?
=
?sreturn?
+
?
"
-
"
;
????
else
?
if
?(format.equals(
"
3
"
))
?????sreturn?
=
?sreturn?
+
?
"
/
"
;
????
else
?
if
?(format.equals(
"
5
"
))
?????sreturn?
=
?sreturn?
+
?
"
.
"
;
???}
???
//
?處理日期
???
if
?(rq.equals(
"
1
"
))?{
????sreturn?
=
?sreturn?
+
?s_rq;
????
if
?(format.equals(
"
1
"
))
?????sreturn?
=
?sreturn?
+
?
"
日
"
;
???}
??}
??
return
?sreturn;
?}
?
public
?
static
?String?getNextMonthDay(String?sdate,?
int
?m)?{
??sdate?
=
?getOKDate(sdate);
??
int
?year?
=
?Integer.parseInt(sdate.substring(
0
,?
4
));
??
int
?month?
=
?Integer.parseInt(sdate.substring(
5
,?
7
));
??month?
=
?month?
+
?m;
??
if
?(month?
<
?
0
)?{
???month?
=
?month?
+
?
12
;
???year?
=
?year?
-
?
1
;
??}?
else
?
if
?(month?
>
?
12
)?{
???month?
=
?month?
-
?
12
;
???year?
=
?year?
+
?
1
;
??}
??String?smonth?
=
?
""
;
??
if
?(month?
<
?
10
)
???smonth?
=
?
"
0
"
?
+
?month;
??
else
???smonth?
=
?
""
?
+
?month;
??
return
?year?
+
?
"
-
"
?
+
?smonth?
+
?
"
-10
"
;
?}
?
public
?
static
?String?getOKDate(String?sdate)?{
??
if
?(sdate?
==
?
null
?
||
?sdate.equals(
""
))
???
return
?getStringDateShort();
??
if
?(
!
VeStr.Isdate(sdate))?{
???sdate?
=
?getStringDateShort();
??}
??
//
?將“/”轉換為“-”
??sdate?
=
?VeStr.Replace(sdate,?
"
/
"
,?
"
-
"
);
??
//
?如果只有8位長度,則要進行轉換
??
if
?(sdate.length()?
==
?
8
)
???sdate?
=
?sdate.substring(
0
,?
4
)?
+
?
"
-
"
?
+
?sdate.substring(
4
,?
6
)?
+
?
"
-
"
?
+
?sdate.substring(
6
,?
8
);
??SimpleDateFormat?formatter?
=
?
new
?SimpleDateFormat(
"
yyyy-MM-dd
"
);
??ParsePosition?pos?
=
?
new
?ParsePosition(
0
);
??Date?strtodate?
=
?formatter.parse(sdate,?pos);
??String?dateString?
=
?formatter.format(strtodate);
??
return
?dateString;
?}
?
public
?
static
?
void
?main(String[]?args)?
throws
?Exception?{
??
try
?{
???
//
System.out.print(Integer.valueOf(getTwoDay("2006-11-03?12:22:10",?"2006-11-02?11:22:09")));
??}?
catch
?(Exception?e)?{
???
throw
?
new
?Exception();
??}
??
//
System.out.println("sss");
?}
}
轉自:http://babyvox5th.javaeye.com/blog/263007