⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 workflow_util_datetimemanager.java

📁 用java实现的工作流
💻 JAVA
字号:
package treedoc;

import java.util.Calendar;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
从电子政务日期管理中取过来的系统日期管理工具类

/**
 * 名称       : WORKFLOW_UTIL_DATE_DATETIMEMANAGER
 * 描述       : WWW.FANGFA.NET 工作流管理系统--日期工具管理类
 * 版权信息   : 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;

  /**
   * 构造方法,包括带参数的和不带参数的
   */
  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);
    }
  }

  /**
   * 功能:得到系统时间中的年
   * @param d 日期类型
   * @return String类型的年份数
   */
  public String getYear(Date d) {
    calendar.setTime(d);
    int year = calendar.get(calendar.YEAR);
    return Integer.toString(year);
  }

  /**
   * 功能:得到系统时间中的月
   * @param d 日期类型
   * @return String类型的月份数
   */

  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;
  }

  /**
   * 功能:得到系统时间中的日
   * @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;
  }

  /**
   * 功能:得到系统时间中的小时
   * @param d 日期类型
   * @return String类型的小时
   */

  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;
  }

  /**
   * 功能:得到系统时间中的分钟
   * @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;
  }

  /**
   * 功能:得到系统时间中的秒
   * @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;
  }

  /**
   * 功能:得到系统的当前时间
   * @param d 日期类型
   * @return 当前的系统时间,格式为: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格式的日期转换成YYYY年MM月DD日 HH:MM:SS或者YYYY年MM月DD日的日期格式
   * @param paraDateTime 待转换的日期格式
   * @return 转换完成后的日期格式
   */
  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数据
    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 + "时" + minute +
          "分" + second + "秒";
    }
    //YYYY-MM-DD格式数据
    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;
  }

  /**
   * 功能描述:根据当前输入的时间以及间隔天数来获取结束时间
   * 时间格式可以为YYYY-MM-DD HH:MM:SS或者YYYY-MM-DD
   * @param currentDateTime 当前时间
   * @param intervalDay 间隔天数
   * @return 结束时间
   */
  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数据格式*******************
     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);
       //设置当前日期
       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);
         //如果获得结果是星期天
         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);
         }
         //如果获得的结果是星期六
         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格式数据*******************
     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);
       //设置当前日期
       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);
         //如果获得结果是星期天
         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);
         }
         //如果获得的结果是星期六
         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;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -