?? workflow_util_datetimemanager.java
字號(hào):
package treedoc;
import java.util.Calendar;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
從電子政務(wù)日期管理中取過(guò)來(lái)的系統(tǒng)日期管理工具類
/**
* 名稱 : WORKFLOW_UTIL_DATE_DATETIMEMANAGER
* 描述 : WWW.FANGFA.NET 工作流管理系統(tǒng)--日期工具管理類
* 版權(quán)信息 : Copyright (c) 2004 COMSCI
* @作者 : COMSCI Sichuan Fangfa Digital
* @版本 : 0.9 builder 2004091910
* @日期 : 2004/09/19
*/
public class workflow_Util_DateTimeManager {
private Calendar calendar = null;
private DateFormat dateFormat = null;
private Date date;
/**
* 構(gòu)造方法,包括帶參數(shù)的和不帶參數(shù)的
*/
public workflow_Util_DateTimeManager() {
dateFormat = new SimpleDateFormat();
calendar = dateFormat.getCalendar();
this.getSystemDate();
}
public workflow_Util_DateTimeManager(long time) {
dateFormat = new SimpleDateFormat();
calendar = dateFormat.getCalendar();
this.setDate(new Date(time));
}
public void setDate(Date d) {
if (d == null) {
this.date = new Date(this.getTime());
}
else {
this.date.setTime(d.getTime());
}
}
public long getTime() {
return date.getTime();
}
private Date getSystemDate() {
return new Date();
}
private void setTime(long time) {
if (date == null) {
date = new Date(time);
}
else {
date.setTime(time);
}
}
/**
* 功能:得到系統(tǒng)時(shí)間中的年
* @param d 日期類型
* @return String類型的年份數(shù)
*/
public String getYear(Date d) {
calendar.setTime(d);
int year = calendar.get(calendar.YEAR);
return Integer.toString(year);
}
/**
* 功能:得到系統(tǒng)時(shí)間中的月
* @param d 日期類型
* @return String類型的月份數(shù)
*/
public String getMonth(Date d) {
calendar.setTime(d);
int tempMonth = calendar.get(calendar.MONTH) + 1;
String month = Integer.toString(tempMonth);
if (month.length() == 1) {
month = "0" + month;
}
return month;
}
/**
* 功能:得到系統(tǒng)時(shí)間中的日
* @param d 日期類型
* @return String類型的日
*/
public String getDay(Date d) {
calendar.setTime(d);
int tempDay = calendar.get(calendar.DAY_OF_MONTH);
String day = Integer.toString(tempDay);
if (day.length() == 1) {
day = "0" + day;
}
return day;
}
/**
* 功能:得到系統(tǒng)時(shí)間中的小時(shí)
* @param d 日期類型
* @return String類型的小時(shí)
*/
public String getHour(Date d) {
calendar.setTime(d);
int tempHour = calendar.get(calendar.HOUR_OF_DAY);
String hour = Integer.toString(tempHour);
if (hour.length() == 1) {
hour = "0" + hour;
}
return hour;
}
/**
* 功能:得到系統(tǒng)時(shí)間中的分鐘
* @param d 日期類型
* @return String類型的分鐘
*/
public String getMinute(Date d) {
calendar.setTime(d);
int tempMinute = calendar.get(calendar.MINUTE);
String minute = Integer.toString(tempMinute);
if (minute.length() == 1) {
minute = "0" + minute;
}
return minute;
}
/**
* 功能:得到系統(tǒng)時(shí)間中的秒
* @param d 日期類型
* @return String類型的秒
*/
public String getSecond(Date d) {
calendar.setTime(d);
int tempSecond = calendar.get(calendar.SECOND);
String second = Integer.toString(tempSecond);
if (second.length() == 1) {
second = "0" + second;
}
return second;
}
/**
* 功能:得到系統(tǒng)的當(dāng)前時(shí)間
* @param d 日期類型
* @return 當(dāng)前的系統(tǒng)時(shí)間,格式為:YYYY-MM-DD HH:MM:SS
*/
public String getCurrentDate(Date d) {
String result = "";
result = this.getYear(d) + "-" + this.getMonth(d) + "-" + this.getDay(d) +
" " + this.getHour(d) + ":" + this.getMinute(d) + ":" +
this.getSecond(d);
return result;
}
/**
* 功能描述:將YYYY-MM-DD HH:MM:SS或者YYYY-MM-DD格式的日期轉(zhuǎn)換成YYYY年MM月DD日 HH:MM:SS或者YYYY年MM月DD日的日期格式
* @param paraDateTime 待轉(zhuǎn)換的日期格式
* @return 轉(zhuǎn)換完成后的日期格式
*/
public String getCNDateTime(String paraDateTime) {
String result = "";
int index = paraDateTime.length();
String year = "";
String month = "";
String day = "";
String hour = "";
String minute = "";
String second = "";
//YYYY-MM-DD HH:MM:SS數(shù)據(jù)
if (index == 19) {
year = paraDateTime.substring(0, 4);
month = paraDateTime.substring(5, 7);
if (month.length() == 2) {
if (month.startsWith("0")) {
month = month.substring(1, month.length());
}
}
day = paraDateTime.substring(8, 10);
if (day.length() == 2) {
if (day.startsWith("0")) {
day = day.substring(1, day.length());
}
}
hour = paraDateTime.substring(11, 13);
if (hour.length() == 2) {
if (hour.startsWith("0")) {
hour = hour.substring(1, hour.length());
}
}
minute = paraDateTime.substring(14, 16);
if (minute.length() == 2) {
if (minute.startsWith("0")) {
minute = minute.substring(1, minute.length());
}
}
second = paraDateTime.substring(17, 19);
if (second.length() == 2) {
if (second.startsWith("0")) {
second = second.substring(1, second.length());
}
}
result = year + "年" + month + "月" + day + "日" + " " + hour + "時(shí)" + minute +
"分" + second + "秒";
}
//YYYY-MM-DD格式數(shù)據(jù)
if (index == 10) {
year = paraDateTime.substring(0, 4);
month = paraDateTime.substring(5, 7);
if (month.length() == 2) {
if (month.startsWith("0")) {
month = month.substring(1, month.length());
}
}
day = paraDateTime.substring(8, 10);
if (day.length() == 2) {
if (day.startsWith("0")) {
day = day.substring(1, day.length());
}
}
result = year + "年" + month + "月" + day + "日";
}
return result;
}
/**
* 功能描述:根據(jù)當(dāng)前輸入的時(shí)間以及間隔天數(shù)來(lái)獲取結(jié)束時(shí)間
* 時(shí)間格式可以為YYYY-MM-DD HH:MM:SS或者YYYY-MM-DD
* @param currentDateTime 當(dāng)前時(shí)間
* @param intervalDay 間隔天數(shù)
* @return 結(jié)束時(shí)間
*/
public String getEndTimeAfterIntervalDay(String currentDateTime,
int intervalDay) {
String result = "";
int index = currentDateTime.length();
String yearStr = "";
int yearInt = 0;
String monthStr = "";
int monthInt = 0;
String dayStr = "";
int dayInt = 0;
String hourStr = "";
int hourInt = 0;
String minuteStr = "";
int minuteInt = 0;
String secondStr = "";
int secondInt = 0;
//****************YYYY-MM-DD HH:MM:SS數(shù)據(jù)格式*******************
if (index == 19) {
yearStr = currentDateTime.substring(0, 4);
monthStr = currentDateTime.substring(5, 7);
dayStr = currentDateTime.substring(8, 10);
hourStr = currentDateTime.substring(11, 13);
minuteStr = currentDateTime.substring(14, 16);
secondStr = currentDateTime.substring(17, 19);
if (monthStr.length() == 2) {
if (monthStr.startsWith("0")) {
monthStr = monthStr.substring(1, monthStr.length());
}
}
if (dayStr.length() == 2) {
if (dayStr.startsWith("0")) {
dayStr = dayStr.substring(1, dayStr.length());
}
}
if (hourStr.length() == 2) {
if (hourStr.startsWith("0")) {
hourStr = hourStr.substring(1, hourStr.length());
}
}
if (minuteStr.length() == 2) {
if (minuteStr.startsWith("0")) {
minuteStr = minuteStr.substring(1, minuteStr.length());
}
}
if (secondStr.length() == 2) {
if (secondStr.startsWith("0")) {
secondStr = secondStr.substring(1, secondStr.length());
}
}
yearInt = Integer.parseInt(yearStr);
monthInt = Integer.parseInt(monthStr);
dayInt = Integer.parseInt(dayStr);
hourInt = Integer.parseInt(hourStr);
minuteInt = Integer.parseInt(minuteStr);
secondInt = Integer.parseInt(secondStr);
//設(shè)置當(dāng)前日期
java.util.Calendar tempCalendar = java.util.Calendar.getInstance();
tempCalendar.set(yearInt, monthInt, dayInt, hourInt, minuteInt,
secondInt);
tempCalendar.add(tempCalendar.DATE, -1);
for (int i = 1; i <= intervalDay; i++) {
yearInt = tempCalendar.get(tempCalendar.YEAR);
monthInt = tempCalendar.get(tempCalendar.MONTH);
dayInt = tempCalendar.get(tempCalendar.DAY_OF_MONTH);
hourInt = tempCalendar.get(tempCalendar.HOUR_OF_DAY);
minuteInt = tempCalendar.get(tempCalendar.MINUTE);
secondInt = tempCalendar.get(tempCalendar.SECOND);
tempCalendar.add(tempCalendar.DATE, 1);
int tempInt = tempCalendar.get(tempCalendar.DAY_OF_WEEK);
//如果獲得結(jié)果是星期天
if (tempInt == 1) {
yearInt = tempCalendar.get(tempCalendar.YEAR);
monthInt = tempCalendar.get(tempCalendar.MONTH);
dayInt = tempCalendar.get(tempCalendar.DAY_OF_MONTH);
hourInt = tempCalendar.get(tempCalendar.HOUR_OF_DAY);
minuteInt = tempCalendar.get(tempCalendar.MINUTE);
secondInt = tempCalendar.get(tempCalendar.SECOND);
tempCalendar.set(yearInt, monthInt, dayInt, hourInt, minuteInt,
secondInt);
tempCalendar.add(tempCalendar.DATE, 1);
}
//如果獲得的結(jié)果是星期六
if (tempInt == 7) {
yearInt = tempCalendar.get(tempCalendar.YEAR);
monthInt = tempCalendar.get(tempCalendar.MONTH);
dayInt = tempCalendar.get(tempCalendar.DAY_OF_MONTH);
hourInt = tempCalendar.get(tempCalendar.HOUR_OF_DAY);
minuteInt = tempCalendar.get(tempCalendar.MINUTE);
secondInt = tempCalendar.get(tempCalendar.SECOND);
tempCalendar.set(yearInt, monthInt, dayInt, hourInt, minuteInt,
secondInt);
tempCalendar.add(tempCalendar.DATE, 2);
}
}
yearStr = String.valueOf(tempCalendar.get(tempCalendar.YEAR));
monthStr = String.valueOf(tempCalendar.get(tempCalendar.MONTH));
dayStr = String.valueOf(tempCalendar.get(tempCalendar.DAY_OF_MONTH));
hourStr = String.valueOf(tempCalendar.get(tempCalendar.HOUR_OF_DAY));
minuteStr = String.valueOf(tempCalendar.get(tempCalendar.MINUTE));
secondStr = String.valueOf(tempCalendar.get(tempCalendar.SECOND));
result = yearStr + "-" + monthStr + "-" + dayStr + " " + hourStr + ":" +
minuteStr + ":" + secondStr;
}
//*****************YYYY-MM-DD格式數(shù)據(jù)*******************
if (index == 10) {
yearStr = currentDateTime.substring(0, 4);
monthStr = currentDateTime.substring(5, 7);
dayStr = currentDateTime.substring(8, 10);
if (monthStr.length() == 2) {
if (monthStr.startsWith("0")) {
monthStr = monthStr.substring(1, monthStr.length());
}
}
if (dayStr.length() == 2) {
if (dayStr.startsWith("0")) {
dayStr = dayStr.substring(1, dayStr.length());
}
}
yearInt = Integer.parseInt(yearStr);
monthInt = Integer.parseInt(monthStr);
dayInt = Integer.parseInt(dayStr);
//設(shè)置當(dāng)前日期
java.util.Calendar tempCalendar = java.util.Calendar.getInstance();
tempCalendar.set(yearInt, monthInt, dayInt);
tempCalendar.add(tempCalendar.DATE, -1);
for (int i = 1; i <= intervalDay; i++) {
yearInt = tempCalendar.get(tempCalendar.YEAR);
monthInt = tempCalendar.get(tempCalendar.MONTH);
dayInt = tempCalendar.get(tempCalendar.DAY_OF_MONTH);
tempCalendar.add(tempCalendar.DATE, 1);
int tempInt = tempCalendar.get(tempCalendar.DAY_OF_WEEK);
//如果獲得結(jié)果是星期天
if (tempInt == 1) {
yearInt = tempCalendar.get(tempCalendar.YEAR);
monthInt = tempCalendar.get(tempCalendar.MONTH);
dayInt = tempCalendar.get(tempCalendar.DAY_OF_MONTH);
tempCalendar.set(yearInt, monthInt, dayInt);
tempCalendar.add(tempCalendar.DATE, 1);
}
//如果獲得的結(jié)果是星期六
if (tempInt == 7) {
yearInt = tempCalendar.get(tempCalendar.YEAR);
monthInt = tempCalendar.get(tempCalendar.MONTH);
dayInt = tempCalendar.get(tempCalendar.DAY_OF_MONTH);
tempCalendar.set(yearInt, monthInt, dayInt);
tempCalendar.add(tempCalendar.DATE, 2);
}
}
yearStr = String.valueOf(tempCalendar.get(tempCalendar.YEAR));
monthStr = String.valueOf(tempCalendar.get(tempCalendar.MONTH));
dayStr = String.valueOf(tempCalendar.get(tempCalendar.DAY_OF_MONTH));
result = yearStr + "-" + monthStr + "-" + dayStr + " " + hourStr + ":" +
minuteStr + ":" + secondStr;
}
return result;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -