- package com.stt.dateChange;
-
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
-
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
-
- public class DateUtils {
-
- private static final Log logger = LogFactory.getLog(DateUtils.class);
-
- public static final String YYYYMMDD = "yyyy-MM-dd";
-
- public static final String YYYYMMDD_ZH = "yyyy年MM月dd日";
-
- public static final int FIRST_DAY_OF_WEEK = Calendar.MONDAY;
-
-
- public static Date parseDate(String strDate) {
- return parseDate(strDate, null);
- }
-
-
- public static Date parseDate(String strDate, String pattern) {
- Date date = null;
- try {
- if (pattern == null) {
- pattern = YYYYMMDD;
- }
- SimpleDateFormat format = new SimpleDateFormat(pattern);
- date = format.parse(strDate);
- } catch (Exception e) {
- logger.error("parseDate error:" + e);
- }
- return date;
- }
-
-
- public static String formatDate(Date date) {
- return formatDate(date, null);
- }
-
-
- public static String formatDate(Date date, String pattern) {
- String strDate = null;
- try {
- if (pattern == null) {
- pattern = YYYYMMDD;
- }
- SimpleDateFormat format = new SimpleDateFormat(pattern);
- strDate = format.format(date);
- } catch (Exception e) {
- logger.error("formatDate error:", e);
- }
- return strDate;
- }
-
-
- public static int getYear(Date date) {
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- int year = c.get(Calendar.YEAR);
- return year;
- }
-
-
- public static int getMonth(Date date) {
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- int month = c.get(Calendar.MONTH);
- return month + 1;
- }
-
-
- public static int getDay(Date date) {
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- int da = c.get(Calendar.DAY_OF_MONTH);
- return da;
- }
-
-
- public static int getWeekDay(Date date) {
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- int week_of_year = c.get(Calendar.DAY_OF_WEEK);
- return week_of_year - 1;
- }
-
-
- public static int getWeekOfYear(Date date) {
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- int week_of_year = c.get(Calendar.WEEK_OF_YEAR);
- return week_of_year;
- }
-
-
- public static String getWeekBeginAndEndDate(Date date, String pattern) {
- Date monday = getMondayOfWeek(date);
- Date sunday = getSundayOfWeek(date);
- return formatDate(monday, pattern) + " - "
- + formatDate(sunday, pattern);
- }
-
-
- public static Date getMondayOfWeek(Date date) {
- Calendar monday = Calendar.getInstance();
- monday.setTime(date);
- monday.setFirstDayOfWeek(FIRST_DAY_OF_WEEK);
- monday.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- return monday.getTime();
- }
-
-
- public static Date getSundayOfWeek(Date date) {
- Calendar sunday = Calendar.getInstance();
- sunday.setTime(date);
- sunday.setFirstDayOfWeek(FIRST_DAY_OF_WEEK);
- sunday.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
- return sunday.getTime();
- }
-
-
- public static int getRemainDayOfMonth(Date date) {
- int dayOfMonth = getDayOfMonth(date);
- int day = getPassDayOfMonth(date);
- return dayOfMonth - day;
- }
-
-
- public static int getPassDayOfMonth(Date date) {
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- return c.get(Calendar.DAY_OF_MONTH);
- }
-
-
- public static int getDayOfMonth(Date date) {
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- return c.getActualMaximum(Calendar.DAY_OF_MONTH);
- }
-
-
- public static Date getFirstDateOfMonth(Date date) {
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));
- return c.getTime();
- }
-
-
- public static Date getLastDateOfMonth(Date date) {
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
- return c.getTime();
- }
-
-
- public static Date getFirstDateOfSeason(Date date) {
- return getFirstDateOfMonth(getSeasonDate(date)[0]);
- }
-
-
- public static Date getLastDateOfSeason(Date date) {
- return getLastDateOfMonth(getSeasonDate(date)[2]);
- }
-
-
- public static int getDayOfSeason(Date date) {
- int day = 0;
- Date[] seasonDates = getSeasonDate(date);
- for (Date date2 : seasonDates) {
- day += getDayOfMonth(date2);
- }
- return day;
- }
-
-
- public static int getRemainDayOfSeason(Date date) {
- return getDayOfSeason(date) - getPassDayOfSeason(date);
- }
-
-
- public static int getPassDayOfSeason(Date date) {
- int day = 0;
-
- Date[] seasonDates = getSeasonDate(date);
-
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- int month = c.get(Calendar.MONTH);
-
- if (month == Calendar.JANUARY || month == Calendar.APRIL
- || month == Calendar.JULY || month == Calendar.OCTOBER) {
- day = getPassDayOfMonth(seasonDates[0]);
- } else if (month == Calendar.FEBRUARY || month == Calendar.MAY
- || month == Calendar.AUGUST || month == Calendar.NOVEMBER) {
- day = getDayOfMonth(seasonDates[0])
- + getPassDayOfMonth(seasonDates[1]);
- } else if (month == Calendar.MARCH || month == Calendar.JUNE
- || month == Calendar.SEPTEMBER || month == Calendar.DECEMBER) {
- day = getDayOfMonth(seasonDates[0]) + getDayOfMonth(seasonDates[1])
- + getPassDayOfMonth(seasonDates[2]);
- }
- return day;
- }
-
-
- public static Date[] getSeasonDate(Date date) {
- Date[] season = new Date[3];
-
- Calendar c = Calendar.getInstance();
- c.setTime(date);
-
- int nSeason = getSeason(date);
- if (nSeason == 1) {
- c.set(Calendar.MONTH, Calendar.JANUARY);
- season[0] = c.getTime();
- c.set(Calendar.MONTH, Calendar.FEBRUARY);
- season[1] = c.getTime();
- c.set(Calendar.MONTH, Calendar.MARCH);
- season[2] = c.getTime();
- } else if (nSeason == 2) {
- c.set(Calendar.MONTH, Calendar.APRIL);
- season[0] = c.getTime();
- c.set(Calendar.MONTH, Calendar.MAY);
- season[1] = c.getTime();
- c.set(Calendar.MONTH, Calendar.JUNE);
- season[2] = c.getTime();
- } else if (nSeason == 3) {
- c.set(Calendar.MONTH, Calendar.JULY);
- season[0] = c.getTime();
- c.set(Calendar.MONTH, Calendar.AUGUST);
- season[1] = c.getTime();
- c.set(Calendar.MONTH, Calendar.SEPTEMBER);
- season[2] = c.getTime();
- } else if (nSeason == 4) {
- c.set(Calendar.MONTH, Calendar.OCTOBER);
- season[0] = c.getTime();
- c.set(Calendar.MONTH, Calendar.NOVEMBER);
- season[1] = c.getTime();
- c.set(Calendar.MONTH, Calendar.DECEMBER);
- season[2] = c.getTime();
- }
- return season;
- }
-
-
- public static int getSeason(Date date) {
-
- int season = 0;
-
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- int month = c.get(Calendar.MONTH);
- switch (month) {
- case Calendar.JANUARY:
- case Calendar.FEBRUARY:
- case Calendar.MARCH:
- season = 1;
- break;
- case Calendar.APRIL:
- case Calendar.MAY:
- case Calendar.JUNE:
- season = 2;
- break;
- case Calendar.JULY:
- case Calendar.AUGUST:
- case Calendar.SEPTEMBER:
- season = 3;
- break;
- case Calendar.OCTOBER:
- case Calendar.NOVEMBER:
- case Calendar.DECEMBER:
- season = 4;
- break;
- default:
- break;
- }
- return season;
- }
-
- public static void main(String[] args) {
-
- String strDate = "2013-01-01";
-
- Date date = parseDate(strDate);
-
- System.out.println(strDate + " 今天是哪一年?" + getYear(date));
- System.out.println(strDate + " 今天是哪个月?" + getMonth(date));
- System.out.println(strDate + " 今天是几号?" + getDay(date));
- System.out.println(strDate + " 今天是周几?" + getWeekDay(date));
- System.out.println(strDate + " 是一年的第几周?" + getWeekOfYear(date));
- System.out.println(strDate + " 所在周起始结束日期?"
- + getWeekBeginAndEndDate(date, "yyyy年MM月dd日"));
- System.out.println(strDate + " 所在周周一是?"
- + formatDate(getMondayOfWeek(date)));
- System.out.println(strDate + " 所在周周日是?"
- + formatDate(getSundayOfWeek(date)));
-
- System.out.println(strDate + " 当月第一天日期?"
- + formatDate(getFirstDateOfMonth(date)));
- System.out.println(strDate + " 当月最后一天日期?"
- + formatDate(getLastDateOfMonth(date)));
- System.out.println(strDate + " 当月天数?" + getDayOfMonth(date));
- System.out.println(strDate + " 当月已过多少天?" + getPassDayOfMonth(date));
- System.out.println(strDate + " 当月剩余多少天?" + getRemainDayOfMonth(date));
-
- System.out.println(strDate + " 所在季度第一天日期?"
- + formatDate(getFirstDateOfSeason(date)));
- System.out.println(strDate + " 所在季度最后一天日期?"
- + formatDate(getLastDateOfSeason(date)));
- System.out.println(strDate + " 所在季度天数?" + getDayOfSeason(date));
- System.out.println(strDate + " 所在季度已过多少天?" + getPassDayOfSeason(date));
- System.out
- .println(strDate + " 所在季度剩余多少天?" + getRemainDayOfSeason(date));
- System.out.println(strDate + " 是第几季度?" + getSeason(date));
- System.out.println(strDate + " 所在季度月份?"
- + formatDate(getSeasonDate(date)[0], "yyyy年MM月") + "/"
- + formatDate(getSeasonDate(date)[1], "yyyy年MM月") + "/"
- + formatDate(getSeasonDate(date)[2], "yyyy年MM月"));
- }
- }
posted @
2016-07-14 15:33
javaweb开发
阅读(
1234)
评论()
收藏
举报