java季度选择_JAVA日期查询:季度、月份、星期等时间信息

packagecom.stt.dateChange;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;/***

*@authorzengms

* @date 2012-12-27

**/

public classDateUtils {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; //中国周一是一周的第一天

/***

*@paramstrDate

*@return

*/

public staticDate parseDate(String strDate) {return parseDate(strDate, null);

}/*** parseDate

*

*@paramstrDate

*@parampattern

*@return

*/

public staticDate parseDate(String strDate, String pattern) {

Date date= null;try{if (pattern == null) {

pattern=YYYYMMDD;

}

SimpleDateFormat format= newSimpleDateFormat(pattern);

date=format.parse(strDate);

}catch(Exception e) {

logger.error("parseDate error:" +e);

}returndate;

}/*** format date

*

*@paramdate

*@return

*/

public staticString formatDate(Date date) {return formatDate(date, null);

}/*** format date

*

*@paramdate

*@parampattern

*@return

*/

public staticString formatDate(Date date, String pattern) {

String strDate= null;try{if (pattern == null) {

pattern=YYYYMMDD;

}

SimpleDateFormat format= newSimpleDateFormat(pattern);

strDate=format.format(date);

}catch(Exception e) {

logger.error("formatDate error:", e);

}returnstrDate;

}/*** 取得日期:年

*

*@paramdate

*@return

*/

public static intgetYear(Date date) {

Calendar c=Calendar.getInstance();

c.setTime(date);int year =c.get(Calendar.YEAR);returnyear;

}/*** 取得日期:年

*

*@paramdate

*@return

*/

public static intgetMonth(Date date) {

Calendar c=Calendar.getInstance();

c.setTime(date);int month =c.get(Calendar.MONTH);return month + 1;

}/*** 取得日期:年

*

*@paramdate

*@return

*/

public static intgetDay(Date date) {

Calendar c=Calendar.getInstance();

c.setTime(date);int da =c.get(Calendar.DAY_OF_MONTH);returnda;

}/*** 取得当天日期是周几

*

*@paramdate

*@return

*/

public static intgetWeekDay(Date date) {

Calendar c=Calendar.getInstance();

c.setTime(date);int week_of_year =c.get(Calendar.DAY_OF_WEEK);return week_of_year - 1;

}/*** 取得一年的第几周

*

*@paramdate

*@return

*/

public static intgetWeekOfYear(Date date) {

Calendar c=Calendar.getInstance();

c.setTime(date);int week_of_year =c.get(Calendar.WEEK_OF_YEAR);returnweek_of_year;

}/*** getWeekBeginAndEndDate

*

*@paramdate

*@parampattern

*@return

*/

public staticString getWeekBeginAndEndDate(Date date, String pattern) {

Date monday=getMondayOfWeek(date);

Date sunday=getSundayOfWeek(date);return formatDate(monday, pattern) + " - "

+formatDate(sunday, pattern);

}/*** 根据日期取得对应周周一日期

*

*@paramdate

*@return

*/

public staticDate getMondayOfWeek(Date date) {

Calendar monday=Calendar.getInstance();

monday.setTime(date);

monday.setFirstDayOfWeek(FIRST_DAY_OF_WEEK);

monday.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);returnmonday.getTime();

}/*** 根据日期取得对应周周日日期

*

*@paramdate

*@return

*/

public staticDate getSundayOfWeek(Date date) {

Calendar sunday=Calendar.getInstance();

sunday.setTime(date);

sunday.setFirstDayOfWeek(FIRST_DAY_OF_WEEK);

sunday.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);returnsunday.getTime();

}/*** 取得月的剩余天数

*

*@paramdate

*@return

*/

public static intgetRemainDayOfMonth(Date date) {int dayOfMonth =getDayOfMonth(date);int day =getPassDayOfMonth(date);return dayOfMonth -day;

}/*** 取得月已经过的天数

*

*@paramdate

*@return

*/

public static intgetPassDayOfMonth(Date date) {

Calendar c=Calendar.getInstance();

c.setTime(date);returnc.get(Calendar.DAY_OF_MONTH);

}/*** 取得月天数

*

*@paramdate

*@return

*/

public static intgetDayOfMonth(Date date) {

Calendar c=Calendar.getInstance();

c.setTime(date);returnc.getActualMaximum(Calendar.DAY_OF_MONTH);

}/*** 取得月第一天

*

*@paramdate

*@return

*/

public staticDate getFirstDateOfMonth(Date date) {

Calendar c=Calendar.getInstance();

c.setTime(date);

c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));returnc.getTime();

}/*** 取得月最后一天

*

*@paramdate

*@return

*/

public staticDate getLastDateOfMonth(Date date) {

Calendar c=Calendar.getInstance();

c.setTime(date);

c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));returnc.getTime();

}/*** 取得季度第一天

*

*@paramdate

*@return

*/

public staticDate getFirstDateOfSeason(Date date) {return getFirstDateOfMonth(getSeasonDate(date)[0]);

}/*** 取得季度最后一天

*

*@paramdate

*@return

*/

public staticDate getLastDateOfSeason(Date date) {return getLastDateOfMonth(getSeasonDate(date)[2]);

}/*** 取得季度天数

*

*@paramdate

*@return

*/

public static intgetDayOfSeason(Date date) {int day = 0;

Date[] seasonDates=getSeasonDate(date);for(Date date2 : seasonDates) {

day+=getDayOfMonth(date2);

}returnday;

}/*** 取得季度剩余天数

*

*@paramdate

*@return

*/

public static intgetRemainDayOfSeason(Date date) {return getDayOfSeason(date) -getPassDayOfSeason(date);

}/*** 取得季度已过天数

*

*@paramdate

*@return

*/

public static intgetPassDayOfSeason(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]);

}returnday;

}/*** 取得季度月

*

*@paramdate

*@return

*/

public staticDate[] 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();

}returnseason;

}/***

* 1 第一季度 2 第二季度 3 第三季度 4 第四季度

*

*@paramdate

*@return

*/

public static intgetSeason(Date date) {int season = 0;

Calendar c=Calendar.getInstance();

c.setTime(date);int month =c.get(Calendar.MONTH);switch(month) {caseCalendar.JANUARY:caseCalendar.FEBRUARY:caseCalendar.MARCH:

season= 1;break;caseCalendar.APRIL:caseCalendar.MAY:caseCalendar.JUNE:

season= 2;break;caseCalendar.JULY:caseCalendar.AUGUST:caseCalendar.SEPTEMBER:

season= 3;break;caseCalendar.OCTOBER:caseCalendar.NOVEMBER:caseCalendar.DECEMBER:

season= 4;break;default:break;

}returnseason;

}public static voidmain(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月"));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值