0 0

java取当前周期、月初至月末、季度初至季度末日期。30

需求1: 当前登陆日期的周一至周五的日期 比如 现在是2012-06-11 周一是2012-06-11 周五就是 2012-06-15。

需求2: 月初至月末。 同上。 当前登陆的时间算出月初和月末的时间。

需求3: 季度初和季度末。 同上。 当前登陆时间算出季度的第一天和季度末的最后一天。

求函数。 谢谢。。 整了1天多没整出来。。。 时间不够了就上来发个需求。。
2012年6月11日 11:32

5个答案 按时间排序 按投票排序

0 0

采纳的答案

我给你写了个,参考一下嘛:

Calendar calendar = new GregorianCalendar();
	// 1. 当前登陆日期的周一至周五的日期 比如 现在是2012-06-11 周一是2012-06-11 周五就是 2012-06-15。
		calendar.set(Calendar.DAY_OF_WEEK, 2);
		System.out.println("登录日期的周一:" + print(calendar.getTime()));
		// 2.星期五,第六天s
		calendar.set(Calendar.DAY_OF_WEEK, 6);
		System.out.println("登录日期的周五:" + print(calendar.getTime()));
		// 3.当前月的第一天
		calendar.set(Calendar.DAY_OF_MONTH, 1);
		System.out.println("当前月的第一天:" + print(calendar.getTime()));
		// 4.当前月的最后一天
		calendar.add(Calendar.MONTH, 1);
		calendar.set(Calendar.DAY_OF_MONTH, 0);
		System.out.println("当前月的最后一天:" + print(calendar.getTime()));

		// 季度初
		calendar.setTime(new Date());
		int month = getQuarterInMonth(calendar.get(Calendar.MONTH), true);
		calendar.set(Calendar.MONTH, month);
		calendar.set(Calendar.DAY_OF_MONTH, 1);
		System.out.println("当季度的第一天:" + print(calendar.getTime()));
		// 季度末
		calendar.setTime(new Date());
		month = getQuarterInMonth(calendar.get(Calendar.MONTH), false);
		calendar.set(Calendar.MONTH, month + 1);
		calendar.set(Calendar.DAY_OF_MONTH, 0);
		System.out.println("当前时间的季度末:" + print(calendar.getTime()));
	}

	private static String print(Date d) {
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return df.format(d);
	}

	// 返回第几个月份,不是几月
	// 季度一年四季, 第一季度:2月-4月, 第二季度:5月-7月, 第三季度:8月-10月, 第四季度:11月-1月
	private static int getQuarterInMonth(int month, boolean isQuarterStart) {
		int months[] = { 1, 4, 7, 10 };
		if (!isQuarterStart) {
			months = new int[] { 3, 6, 9, 12 };
		}
		if (month >= 2 && month <= 4)
			return months[0];
		else if (month >= 5 && month <= 7)
			return months[1];
		else if (month >= 8 && month <= 10)
			return months[2];
		else
			return months[3];
	}

2012年6月11日 14:04
0 0

去看下 joda-time.jar 吧

2012年6月12日 13:42
0 0

/**
	 * 获取指定日期所在周的周一
	 * @Methods Name getMonday
	 * @return Date
	 */
	public Date getMonday(Date date){
		Calendar cDay = Calendar.getInstance();   
        cDay.setTime(date);   
        cDay.set(Calendar.DAY_OF_WEEK, 2);//老外将周日定位第一天,周一取第二天
        return cDay.getTime();   
	}
	/**
	 * 获取指定日期所在周日
	 * @Methods Name getSunday
	 * @return Date
	 */
	public Date getSunday(Date date){
		Calendar cDay = Calendar.getInstance();   
        cDay.setTime(date);
        if(Calendar.DAY_OF_WEEK==cDay.getFirstDayOfWeek()){	//如果刚好是周日,直接返回
        	return date;
        }else{//如果不是周日,加一周计算
        	cDay.add(Calendar.DAY_OF_YEAR, 7);
        	cDay.set(Calendar.DAY_OF_WEEK, 1);
        	System.out.println(cDay.getTime());
        	return cDay.getTime();
        }  
	}
	/**
     * 得到本月第一天的日期
     * @Methods Name getFirstDayOfMonth
     * @return Date
     */
	public Date getFirstDayOfMonth(Date date)   {   
        Calendar cDay = Calendar.getInstance();   
        cDay.setTime(date);
        cDay.set(Calendar.DAY_OF_MONTH, 1);
        System.out.println(cDay.getTime());
        return cDay.getTime();   
	}   
	/**
     * 得到本月最后一天的日期
     * @Methods Name getLastDayOfMonth
     * @return Date
     */
	public Date getLastDayOfMonth(Date date)   {   
    	Calendar cDay = Calendar.getInstance();   
        cDay.setTime(date);
        cDay.set(Calendar.DAY_OF_MONTH, cDay.getActualMaximum(Calendar.DAY_OF_MONTH));
        System.out.println(cDay.getTime());
        return cDay.getTime();   
	}
	/**
     * 得到本季度第一天的日期
     * @Methods Name getFirstDayOfQuarter
     * @return Date
     */
	public Date getFirstDayOfQuarter(Date date)   {   
    	Calendar cDay = Calendar.getInstance();   
        cDay.setTime(date);
        int curMonth = cDay.get(Calendar.MONTH);
        if (curMonth >= Calendar.JANUARY && curMonth <= Calendar.MARCH){  
        	cDay.set(Calendar.MONTH, Calendar.JANUARY);
        }
        if (curMonth >= Calendar.APRIL && curMonth <= Calendar.JUNE){  
        	cDay.set(Calendar.MONTH, Calendar.APRIL);
        }
        if (curMonth >= Calendar.JULY && curMonth <= Calendar.AUGUST) {  
        	cDay.set(Calendar.MONTH, Calendar.JULY);
        }
        if (curMonth >= Calendar.OCTOBER && curMonth <= Calendar.DECEMBER) {  
        	cDay.set(Calendar.MONTH, Calendar.OCTOBER);
        }
        cDay.set(Calendar.DAY_OF_MONTH, cDay.getActualMinimum(Calendar.DAY_OF_MONTH));
        System.out.println(cDay.getTime());
        return cDay.getTime();   
	}
	/**
     * 得到本季度最后一天的日期
     * @Methods Name getLastDayOfQuarter
     * @return Date
     */
	public Date getLastDayOfQuarter(Date date)   {   
    	Calendar cDay = Calendar.getInstance();   
        cDay.setTime(date);
        int curMonth = cDay.get(Calendar.MONTH);
        if (curMonth >= Calendar.JANUARY && curMonth <= Calendar.MARCH){  
        	cDay.set(Calendar.MONTH, Calendar.MARCH);
        }
        if (curMonth >= Calendar.APRIL && curMonth <= Calendar.JUNE){  
        	cDay.set(Calendar.MONTH, Calendar.JUNE);
        }
        if (curMonth >= Calendar.JULY && curMonth <= Calendar.AUGUST) {  
        	cDay.set(Calendar.MONTH, Calendar.AUGUST);
        }
        if (curMonth >= Calendar.OCTOBER && curMonth <= Calendar.DECEMBER) {  
        	cDay.set(Calendar.MONTH, Calendar.DECEMBER);
        }
        cDay.set(Calendar.DAY_OF_MONTH, cDay.getActualMaximum(Calendar.DAY_OF_MONTH));
        System.out.println(cDay.getTime());
        return cDay.getTime();   
	}

2012年6月11日 16:21
0 0

package com.bruce.test.testcalendar;

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

/**
 * 常用日历操作辅助类
 * 
 * @author steven 2010-08-10
 * @email:qing.tan@iwode.com
 */
public class CalendarUtil {

	private int weeks = 0;// 用来全局控制 上一周,本周,下一周的周数变化
	private int MaxDate; // 一月最大天数
	private int MaxYear; // 一年最大天数

	/**
	 * 测试
	 * 
	 * @param args
	 */
	@SuppressWarnings("static-access")
	public static void main(String[] args) {
		CalendarUtil tt = new CalendarUtil();
		System.out.println("获取当天日期:" + tt.getNowTime("yyyy-MM-dd"));
		System.out.println("获取本周一日期:" + tt.getMondayOFWeek());
		System.out.println("获取本周日的日期~:" + tt.getCurrentWeekday());
		System.out.println("获取上周一日期:" + tt.getPreviousWeekday());
		System.out.println("获取上周日日期:" + tt.getPreviousWeekSunday());
		System.out.println("获取下周一日期:" + tt.getNextMonday());
		System.out.println("获取下周日日期:" + tt.getNextSunday());
		System.out.println("获得相应周的周六的日期:" + tt.getNowTime("yyyy-MM-dd"));
		System.out.println("获取本月第一天日期:" + tt.getFirstDayOfMonth());
		System.out.println("获取本月最后一天日期:" + tt.getDefaultDay());
		System.out.println("获取上月第一天日期:" + tt.getPreviousMonthFirst());
		System.out.println("获取上月最后一天的日期:" + tt.getPreviousMonthEnd());
		System.out.println("获取下月第一天日期:" + tt.getNextMonthFirst());
		System.out.println("获取下月最后一天日期:" + tt.getNextMonthEnd());
		System.out.println("获取本年的第一天日期:" + tt.getCurrentYearFirst());
		System.out.println("获取本年最后一天日期:" + tt.getCurrentYearEnd());
		System.out.println("获取去年的第一天日期:" + tt.getPreviousYearFirst());
		System.out.println("获取去年的最后一天日期:" + tt.getPreviousYearEnd());
		System.out.println("获取明年第一天日期:" + tt.getNextYearFirst());
		System.out.println("获取明年最后一天日期:" + tt.getNextYearEnd());
		System.out.println("获取本季度第一天:" + tt.getThisSeasonFirstTime(11));
		System.out.println("获取本季度最后一天:" + tt.getThisSeasonFinallyTime(11));
		System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:"
				+ CalendarUtil.getTwoDay("2008-12-1", "2008-9-29"));
		System.out.println("获取当前月的第几周:" + tt.getWeekOfMonth());
		System.out.println("获取当前年份:" + tt.getYear());
		System.out.println("获取当前月份:" + tt.getMonth());
		System.out.println("获取今天在本年的第几天:" + tt.getDayOfYear());
		System.out.println("获得今天在本月的第几天(获得当前日):" + tt.getDayOfMonth());
		System.out.println("获得今天在本周的第几天:" + tt.getDayOfWeek());
		System.out.println("获得半年后的日期:"
				+ tt.convertDateToString(tt.getTimeYearNext()));
	}

	/**
	 * 获得当前年份
	 * 
	 * @return
	 */
	public static int getYear() {
		return Calendar.getInstance().get(Calendar.YEAR);
	}

	/**
	 * 获得当前月份
	 * 
	 * @return
	 */
	public static int getMonth() {
		return Calendar.getInstance().get(Calendar.MONTH) + 1;
	}

	/**
	 * 获得今天在本年的第几天
	 * 
	 * @return
	 */
	public static int getDayOfYear() {
		return Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
	}

	/**
	 * 获得今天在本月的第几天(获得当前日)
	 * 
	 * @return
	 */
	public static int getDayOfMonth() {
		return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
	}

	/**
	 * 获得今天在本周的第几天
	 * 
	 * @return
	 */
	public static int getDayOfWeek() {
		return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
	}

	/**
	 * 获得今天是这个月的第几周
	 * 
	 * @return
	 */
	public static int getWeekOfMonth() {
		return Calendar.getInstance().get(Calendar.DAY_OF_WEEK_IN_MONTH);
	}

	/**
	 * 获得半年后的日期
	 * 
	 * @return
	 */
	public static Date getTimeYearNext() {
		Calendar.getInstance().add(Calendar.DAY_OF_YEAR, 183);
		return Calendar.getInstance().getTime();
	}

	/**
	 * 将日期转换成字符串
	 * 
	 * @param dateTime
	 * @return
	 */
	public static String convertDateToString(Date dateTime) {
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		return df.format(dateTime);
	}

	/**
	 * 得到二个日期间的间隔天数
	 * 
	 * @param sj1
	 * @param sj2
	 * @return
	 */
	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 + "";
	}

	/**
	 * 根据一个日期,返回是星期几的字符串
	 * 
	 * @param sdate
	 * @return
	 */
	public static String getWeek(String sdate) {
		// 再转换为时间
		Date date = CalendarUtil.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());
	}

	/**
	 * 将短时间格式字符串转换为时间 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;
	}

	/**
	 * 两个时间之间的天数
	 * 
	 * @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;
	}

	/**
	 * 计算当月最后一天,返回字符串
	 * 
	 * @return
	 */
	public String getDefaultDay() {
		String str = "";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		Calendar lastDate = Calendar.getInstance();
		lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
		lastDate.add(Calendar.MONTH, 1);// 加一个月,变为下月的1号
		lastDate.add(Calendar.DATE, -1);// 减去一天,变为当月最后一天

		str = sdf.format(lastDate.getTime());
		return str;
	}

	/**
	 * 上月第一天
	 * 
	 * @return
	 */
	public String getPreviousMonthFirst() {
		String str = "";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		Calendar lastDate = Calendar.getInstance();
		lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
		lastDate.add(Calendar.MONTH, -1);// 减一个月,变为下月的1号
		// lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天

		str = sdf.format(lastDate.getTime());
		return str;
	}

	/**
	 * 获取当月第一天
	 * 
	 * @return
	 */
	public String getFirstDayOfMonth() {
		String str = "";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		Calendar lastDate = Calendar.getInstance();
		lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
		str = sdf.format(lastDate.getTime());
		return str;
	}

	/**
	 * 获得本周星期日的日期
	 * 
	 * @return
	 */
	public String getCurrentWeekday() {
		weeks = 0;
		int mondayPlus = this.getMondayPlus();
		GregorianCalendar currentDate = new GregorianCalendar();
		currentDate.add(GregorianCalendar.DATE, mondayPlus + 6);
		Date monday = currentDate.getTime();

		DateFormat df = DateFormat.getDateInstance();
		String preMonday = df.format(monday);
		return preMonday;
	}

	/**
	 * 获取当天时间
	 * 
	 * @param dateformat
	 * @return
	 */
	public String getNowTime(String dateformat) {
		Date now = new Date();
		SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 可以方便地修改日期格式
		String hehe = dateFormat.format(now);
		return hehe;
	}

	/**
	 * 获得当前日期与本周日相差的天数
	 * 
	 * @return
	 */
	private int getMondayPlus() {
		Calendar cd = Calendar.getInstance();
		// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
		int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; // 因为按中国礼拜一作为第一天所以这里减1
		if (dayOfWeek == 1) {
			return 0;
		} else {
			return 1 - dayOfWeek;
		}
	}

	/**
	 * 获得本周一的日期
	 * 
	 * @return
	 */
	public String getMondayOFWeek() {
		weeks = 0;
		int mondayPlus = this.getMondayPlus();
		GregorianCalendar currentDate = new GregorianCalendar();
		currentDate.add(GregorianCalendar.DATE, mondayPlus);
		Date monday = currentDate.getTime();

		DateFormat df = DateFormat.getDateInstance();
		String preMonday = df.format(monday);
		return preMonday;
	}

	/**
	 * 获得相应周的周六的日期
	 * 
	 * @return
	 */
	public String getSaturday() {
		int mondayPlus = this.getMondayPlus();
		GregorianCalendar currentDate = new GregorianCalendar();
		currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6);
		Date monday = currentDate.getTime();
		DateFormat df = DateFormat.getDateInstance();
		String preMonday = df.format(monday);
		return preMonday;
	}

	/**
	 * 获得上周星期日的日期
	 * 
	 * @return
	 */
	public String getPreviousWeekSunday() {
		weeks = 0;
		weeks--;
		int mondayPlus = this.getMondayPlus();
		GregorianCalendar currentDate = new GregorianCalendar();
		currentDate.add(GregorianCalendar.DATE, mondayPlus + weeks);
		Date monday = currentDate.getTime();
		DateFormat df = DateFormat.getDateInstance();
		String preMonday = df.format(monday);
		return preMonday;
	}

	/**
	 * 获得上周星期一的日期
	 * 
	 * @return
	 */
	public String getPreviousWeekday() {
		weeks--;
		int mondayPlus = this.getMondayPlus();
		GregorianCalendar currentDate = new GregorianCalendar();
		currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);
		Date monday = currentDate.getTime();
		DateFormat df = DateFormat.getDateInstance();
		String preMonday = df.format(monday);
		return preMonday;
	}

	/**
	 * 获得下周星期一的日期
	 */
	public String getNextMonday() {
		weeks++;
		int mondayPlus = this.getMondayPlus();
		GregorianCalendar currentDate = new GregorianCalendar();
		currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);
		Date monday = currentDate.getTime();
		DateFormat df = DateFormat.getDateInstance();
		String preMonday = df.format(monday);
		return preMonday;
	}

	/**
	 * 获得下周星期日的日期
	 */ 
	public String getNextSunday() {

		int mondayPlus = this.getMondayPlus();
		GregorianCalendar currentDate = new GregorianCalendar();
		currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 + 6);
		Date monday = currentDate.getTime();
		DateFormat df = DateFormat.getDateInstance();
		String preMonday = df.format(monday);
		return preMonday;
	}

	@SuppressWarnings("unused")
	private int getMonthPlus() {
		Calendar cd = Calendar.getInstance();
		int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);
		cd.set(Calendar.DATE, 1);// 把日期设置为当月第一天
		cd.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天
		MaxDate = cd.get(Calendar.DATE);
		if (monthOfNumber == 1) {
			return -MaxDate;
		} else {
			return 1 - monthOfNumber;
		}
	}

	/**
	 * 获得上月最后一天的日期
	 * 
	 * @return
	 */
	public String getPreviousMonthEnd() {
		String str = "";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		Calendar lastDate = Calendar.getInstance();
		lastDate.add(Calendar.MONTH, -1);// 减一个月
		lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
		lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
		str = sdf.format(lastDate.getTime());
		return str;
	}

	/**
	 * 获得下个月第一天的日期
	 * 
	 * @return
	 */
	public String getNextMonthFirst() {
		String str = "";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		Calendar lastDate = Calendar.getInstance();
		lastDate.add(Calendar.MONTH, 1);// 减一个月
		lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
		str = sdf.format(lastDate.getTime());
		return str;
	}

	/**
	 * 获得下个月最后一天的日期
	 * 
	 * @return
	 */
	public String getNextMonthEnd() {
		String str = "";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		Calendar lastDate = Calendar.getInstance();
		lastDate.add(Calendar.MONTH, 1);// 加一个月
		lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
		lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
		str = sdf.format(lastDate.getTime());
		return str;
	}

	/**
	 * 获得明年最后一天的日期
	 * 
	 * @return
	 */
	public String getNextYearEnd() {
		String str = "";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		Calendar lastDate = Calendar.getInstance();
		lastDate.add(Calendar.YEAR, 1);// 加一个年
		lastDate.set(Calendar.DAY_OF_YEAR, 1);
		lastDate.roll(Calendar.DAY_OF_YEAR, -1);
		str = sdf.format(lastDate.getTime());
		return str;
	}

	/**
	 * 获得明年第一天的日期
	 * 
	 * @return
	 */
	public String getNextYearFirst() {
		String str = "";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

		Calendar lastDate = Calendar.getInstance();
		lastDate.add(Calendar.YEAR, 1);// 加一个年
		lastDate.set(Calendar.DAY_OF_YEAR, 1);
		str = sdf.format(lastDate.getTime());
		return str;

	}

	/**
	 * 获得本年有多少天
	 * 
	 * @return
	 */
	@SuppressWarnings("unused")
	private int getMaxYear() {
		Calendar cd = Calendar.getInstance();
		cd.set(Calendar.DAY_OF_YEAR, 1);// 把日期设为当年第一天
		cd.roll(Calendar.DAY_OF_YEAR, -1);// 把日期回滚一天。
		int MaxYear = cd.get(Calendar.DAY_OF_YEAR);
		return MaxYear;
	}

	private int getYearPlus() {
		Calendar cd = Calendar.getInstance();
		int yearOfNumber = cd.get(Calendar.DAY_OF_YEAR);// 获得当天是一年中的第几天
		cd.set(Calendar.DAY_OF_YEAR, 1);// 把日期设为当年第一天
		cd.roll(Calendar.DAY_OF_YEAR, -1);// 把日期回滚一天。
		int MaxYear = cd.get(Calendar.DAY_OF_YEAR);
		if (yearOfNumber == 1) {
			return -MaxYear;
		} else {
			return 1 - yearOfNumber;
		}
	}

	/**
	 * 获得本年第一天的日期
	 * 
	 * @return
	 */
	public String getCurrentYearFirst() {
		int yearPlus = this.getYearPlus();
		GregorianCalendar currentDate = new GregorianCalendar();
		currentDate.add(GregorianCalendar.DATE, yearPlus);
		Date yearDay = currentDate.getTime();
		DateFormat df = DateFormat.getDateInstance();
		String preYearDay = df.format(yearDay);
		return preYearDay;
	}

	// 获得本年最后一天的日期 *
	public String getCurrentYearEnd() {
		Date date = new Date();
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
		String years = dateFormat.format(date);
		return years + "-12-31";
	}

	// 获得上年第一天的日期 *
	public String getPreviousYearFirst() {
		Date date = new Date();
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
		String years = dateFormat.format(date);
		int years_value = Integer.parseInt(years);
		years_value--;
		return years_value + "-1-1";
	}

	// 获得上年最后一天的日期
	public String getPreviousYearEnd() {
		weeks--;
		int yearPlus = this.getYearPlus();
		GregorianCalendar currentDate = new GregorianCalendar();
		currentDate.add(GregorianCalendar.DATE, yearPlus + MaxYear * weeks
				+ (MaxYear - 1));
		Date yearDay = currentDate.getTime();
		DateFormat df = DateFormat.getDateInstance();
		String preYearDay = df.format(yearDay);
		return preYearDay;
	}

	/**
	 * 获得本季度第一天
	 * 
	 * @param month
	 * @return
	 */
	public String getThisSeasonFirstTime(int month) {
		int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
		int season = 1;
		if (month >= 1 && month <= 3) {
			season = 1;
		}
		if (month >= 4 && month <= 6) {
			season = 2;
		}
		if (month >= 7 && month <= 9) {
			season = 3;
		}
		if (month >= 10 && month <= 12) {
			season = 4;
		}
		int start_month = array[season - 1][0];
		int end_month = array[season - 1][2];

		Date date = new Date();
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
		String years = dateFormat.format(date);
		int years_value = Integer.parseInt(years);

		int start_days = 1;// years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
		@SuppressWarnings("unused")
		int end_days = getLastDayOfMonth(years_value, end_month);
		String seasonDate = years_value + "-" + start_month + "-" + start_days;
		return seasonDate;

	}

	/**
	 * 获得本季度最后一天
	 * 
	 * @param month
	 * @return
	 */
	@SuppressWarnings("unused")
	public String getThisSeasonFinallyTime(int month) {
		int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
		int season = 1;
		if (month >= 1 && month <= 3) {
			season = 1;
		}
		if (month >= 4 && month <= 6) {
			season = 2;
		}
		if (month >= 7 && month <= 9) {
			season = 3;
		}
		if (month >= 10 && month <= 12) {
			season = 4;
		}
		int start_month = array[season - 1][0];
		int end_month = array[season - 1][2];

		Date date = new Date();
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
		String years = dateFormat.format(date);
		int years_value = Integer.parseInt(years);

		int start_days = 1;// years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
		int end_days = getLastDayOfMonth(years_value, end_month);
		String seasonDate = years_value + "-" + end_month + "-" + end_days;
		return seasonDate;

	}

	/**
	 * 获取某年某月的最后一天
	 * 
	 * @param year
	 *            年
	 * @param month
	 *            月
	 * @return 最后一天
	 */
	private int getLastDayOfMonth(int year, int month) {
		if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
				|| month == 10 || month == 12) {
			return 31;
		}
		if (month == 4 || month == 6 || month == 9 || month == 11) {
			return 30;
		}
		if (month == 2) {
			if (isLeapYear(year)) {
				return 29;
			} else {
				return 28;
			}
		}
		return 0;
	}

	/**
	 * 是否闰年
	 * 
	 * @param year
	 *            年
	 * @return
	 */
	public boolean isLeapYear(int year) {
		return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
	}

	/**
	 * 是否闰年
	 * 
	 * @param year
	 * @return
	 */
	public boolean isLeapYear2(int year) {
		return new GregorianCalendar().isLeapYear(year);
	}
}

摘自网络,希望能帮助你

2012年6月11日 14:26
0 0

package com.bruce.test.testcalendar;

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

/**
* 常用日历操作辅助类
*
* @author steven 2010-08-10
* @email:qing.tan@iwode.com
*/
public class CalendarUtil {

private int weeks = 0;// 用来全局控制 上一周,本周,下一周的周数变化
private int MaxDate; // 一月最大天数
private int MaxYear; // 一年最大天数

/**
* 测试
*
* @param args
*/
@SuppressWarnings("static-access")
public static void main(String[] args) {
CalendarUtil tt = new CalendarUtil();
System.out.println("获取当天日期:" + tt.getNowTime("yyyy-MM-dd"));
System.out.println("获取本周一日期:" + tt.getMondayOFWeek());
System.out.println("获取本周日的日期~:" + tt.getCurrentWeekday());
System.out.println("获取上周一日期:" + tt.getPreviousWeekday());
System.out.println("获取上周日日期:" + tt.getPreviousWeekSunday());
System.out.println("获取下周一日期:" + tt.getNextMonday());
System.out.println("获取下周日日期:" + tt.getNextSunday());
System.out.println("获得相应周的周六的日期:" + tt.getNowTime("yyyy-MM-dd"));
System.out.println("获取本月第一天日期:" + tt.getFirstDayOfMonth());
System.out.println("获取本月最后一天日期:" + tt.getDefaultDay());
System.out.println("获取上月第一天日期:" + tt.getPreviousMonthFirst());
System.out.println("获取上月最后一天的日期:" + tt.getPreviousMonthEnd());
System.out.println("获取下月第一天日期:" + tt.getNextMonthFirst());
System.out.println("获取下月最后一天日期:" + tt.getNextMonthEnd());
System.out.println("获取本年的第一天日期:" + tt.getCurrentYearFirst());
System.out.println("获取本年最后一天日期:" + tt.getCurrentYearEnd());
System.out.println("获取去年的第一天日期:" + tt.getPreviousYearFirst());
System.out.println("获取去年的最后一天日期:" + tt.getPreviousYearEnd());
System.out.println("获取明年第一天日期:" + tt.getNextYearFirst());
System.out.println("获取明年最后一天日期:" + tt.getNextYearEnd());
System.out.println("获取本季度第一天:" + tt.getThisSeasonFirstTime(11));
System.out.println("获取本季度最后一天:" + tt.getThisSeasonFinallyTime(11));
System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:"
+ CalendarUtil.getTwoDay("2008-12-1", "2008-9-29"));
System.out.println("获取当前月的第几周:" + tt.getWeekOfMonth());
System.out.println("获取当前年份:" + tt.getYear());
System.out.println("获取当前月份:" + tt.getMonth());
System.out.println("获取今天在本年的第几天:" + tt.getDayOfYear());
System.out.println("获得今天在本月的第几天(获得当前日):" + tt.getDayOfMonth());
System.out.println("获得今天在本周的第几天:" + tt.getDayOfWeek());
System.out.println("获得半年后的日期:"
+ tt.convertDateToString(tt.getTimeYearNext()));
}

/**
* 获得当前年份
*
* @return
*/
public static int getYear() {
return Calendar.getInstance().get(Calendar.YEAR);
}

/**
* 获得当前月份
*
* @return
*/
public static int getMonth() {
return Calendar.getInstance().get(Calendar.MONTH) + 1;
}

/**
* 获得今天在本年的第几天
*
* @return
*/
public static int getDayOfYear() {
return Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
}

/**
* 获得今天在本月的第几天(获得当前日)
*
* @return
*/
public static int getDayOfMonth() {
return Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
}

/**
* 获得今天在本周的第几天
*
* @return
*/
public static int getDayOfWeek() {
return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
}

/**
* 获得今天是这个月的第几周
*
* @return
*/
public static int getWeekOfMonth() {
return Calendar.getInstance().get(Calendar.DAY_OF_WEEK_IN_MONTH);
}

/**
* 获得半年后的日期
*
* @return
*/
public static Date getTimeYearNext() {
Calendar.getInstance().add(Calendar.DAY_OF_YEAR, 183);
return Calendar.getInstance().getTime();
}

/**
* 将日期转换成字符串
*
* @param dateTime
* @return
*/
public static String convertDateToString(Date dateTime) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
return df.format(dateTime);
}

/**
* 得到二个日期间的间隔天数
*
* @param sj1
* @param sj2
* @return
*/
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 + "";
}

/**
* 根据一个日期,返回是星期几的字符串
*
* @param sdate
* @return
*/
public static String getWeek(String sdate) {
// 再转换为时间
Date date = CalendarUtil.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());
}

/**
* 将短时间格式字符串转换为时间 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;
}

/**
* 两个时间之间的天数
*
* @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;
}

/**
* 计算当月最后一天,返回字符串
*
* @return
*/
public String getDefaultDay() {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
lastDate.add(Calendar.MONTH, 1);// 加一个月,变为下月的1号
lastDate.add(Calendar.DATE, -1);// 减去一天,变为当月最后一天

str = sdf.format(lastDate.getTime());
return str;
}

/**
* 上月第一天
*
* @return
*/
public String getPreviousMonthFirst() {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
lastDate.add(Calendar.MONTH, -1);// 减一个月,变为下月的1号
// lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天

str = sdf.format(lastDate.getTime());
return str;
}

/**
* 获取当月第一天
*
* @return
*/
public String getFirstDayOfMonth() {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
str = sdf.format(lastDate.getTime());
return str;
}

/**
* 获得本周星期日的日期
*
* @return
*/
public String getCurrentWeekday() {
weeks = 0;
int mondayPlus = this.getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus + 6);
Date monday = currentDate.getTime();

DateFormat df = DateFormat.getDateInstance();
String preMonday = df.format(monday);
return preMonday;
}

/**
* 获取当天时间
*
* @param dateformat
* @return
*/
public String getNowTime(String dateformat) {
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 可以方便地修改日期格式
String hehe = dateFormat.format(now);
return hehe;
}

/**
* 获得当前日期与本周日相差的天数
*
* @return
*/
private int getMondayPlus() {
Calendar cd = Calendar.getInstance();
// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; // 因为按中国礼拜一作为第一天所以这里减1
if (dayOfWeek == 1) {
return 0;
} else {
return 1 - dayOfWeek;
}
}

/**
* 获得本周一的日期
*
* @return
*/
public String getMondayOFWeek() {
weeks = 0;
int mondayPlus = this.getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus);
Date monday = currentDate.getTime();

DateFormat df = DateFormat.getDateInstance();
String preMonday = df.format(monday);
return preMonday;
}

/**
* 获得相应周的周六的日期
*
* @return
*/
public String getSaturday() {
int mondayPlus = this.getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6);
Date monday = currentDate.getTime();
DateFormat df = DateFormat.getDateInstance();
String preMonday = df.format(monday);
return preMonday;
}

/**
* 获得上周星期日的日期
*
* @return
*/
public String getPreviousWeekSunday() {
weeks = 0;
weeks--;
int mondayPlus = this.getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus + weeks);
Date monday = currentDate.getTime();
DateFormat df = DateFormat.getDateInstance();
String preMonday = df.format(monday);
return preMonday;
}

/**
* 获得上周星期一的日期
*
* @return
*/
public String getPreviousWeekday() {
weeks--;
int mondayPlus = this.getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);
Date monday = currentDate.getTime();
DateFormat df = DateFormat.getDateInstance();
String preMonday = df.format(monday);
return preMonday;
}

/**
* 获得下周星期一的日期
*/
public String getNextMonday() {
weeks++;
int mondayPlus = this.getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);
Date monday = currentDate.getTime();
DateFormat df = DateFormat.getDateInstance();
String preMonday = df.format(monday);
return preMonday;
}

/**
* 获得下周星期日的日期
*/
public String getNextSunday() {

int mondayPlus = this.getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 + 6);
Date monday = currentDate.getTime();
DateFormat df = DateFormat.getDateInstance();
String preMonday = df.format(monday);
return preMonday;
}

@SuppressWarnings("unused")
private int getMonthPlus() {
Calendar cd = Calendar.getInstance();
int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);
cd.set(Calendar.DATE, 1);// 把日期设置为当月第一天
cd.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天
MaxDate = cd.get(Calendar.DATE);
if (monthOfNumber == 1) {
return -MaxDate;
} else {
return 1 - monthOfNumber;
}
}

/**
* 获得上月最后一天的日期
*
* @return
*/
public String getPreviousMonthEnd() {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.MONTH, -1);// 减一个月
lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
str = sdf.format(lastDate.getTime());
return str;
}

/**
* 获得下个月第一天的日期
*
* @return
*/
public String getNextMonthFirst() {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.MONTH, 1);// 减一个月
lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
str = sdf.format(lastDate.getTime());
return str;
}

/**
* 获得下个月最后一天的日期
*
* @return
*/
public String getNextMonthEnd() {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.MONTH, 1);// 加一个月
lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
str = sdf.format(lastDate.getTime());
return str;
}

/**
* 获得明年最后一天的日期
*
* @return
*/
public String getNextYearEnd() {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.YEAR, 1);// 加一个年
lastDate.set(Calendar.DAY_OF_YEAR, 1);
lastDate.roll(Calendar.DAY_OF_YEAR, -1);
str = sdf.format(lastDate.getTime());
return str;
}

/**
* 获得明年第一天的日期
*
* @return
*/
public String getNextYearFirst() {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.YEAR, 1);// 加一个年
lastDate.set(Calendar.DAY_OF_YEAR, 1);
str = sdf.format(lastDate.getTime());
return str;

}

/**
* 获得本年有多少天
*
* @return
*/
@SuppressWarnings("unused")
private int getMaxYear() {
Calendar cd = Calendar.getInstance();
cd.set(Calendar.DAY_OF_YEAR, 1);// 把日期设为当年第一天
cd.roll(Calendar.DAY_OF_YEAR, -1);// 把日期回滚一天。
int MaxYear = cd.get(Calendar.DAY_OF_YEAR);
return MaxYear;
}

private int getYearPlus() {
Calendar cd = Calendar.getInstance();
int yearOfNumber = cd.get(Calendar.DAY_OF_YEAR);// 获得当天是一年中的第几天
cd.set(Calendar.DAY_OF_YEAR, 1);// 把日期设为当年第一天
cd.roll(Calendar.DAY_OF_YEAR, -1);// 把日期回滚一天。
int MaxYear = cd.get(Calendar.DAY_OF_YEAR);
if (yearOfNumber == 1) {
return -MaxYear;
} else {
return 1 - yearOfNumber;
}
}

/**
* 获得本年第一天的日期
*
* @return
*/
public String getCurrentYearFirst() {
int yearPlus = this.getYearPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, yearPlus);
Date yearDay = currentDate.getTime();
DateFormat df = DateFormat.getDateInstance();
String preYearDay = df.format(yearDay);
return preYearDay;
}

// 获得本年最后一天的日期 *
public String getCurrentYearEnd() {
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
String years = dateFormat.format(date);
return years + "-12-31";
}

// 获得上年第一天的日期 *
public String getPreviousYearFirst() {
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
String years = dateFormat.format(date);
int years_value = Integer.parseInt(years);
years_value--;
return years_value + "-1-1";
}

// 获得上年最后一天的日期
public String getPreviousYearEnd() {
weeks--;
int yearPlus = this.getYearPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, yearPlus + MaxYear * weeks
+ (MaxYear - 1));
Date yearDay = currentDate.getTime();
DateFormat df = DateFormat.getDateInstance();
String preYearDay = df.format(yearDay);
return preYearDay;
}

/**
* 获得本季度第一天
*
* @param month
* @return
*/
public String getThisSeasonFirstTime(int month) {
int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
int season = 1;
if (month >= 1 && month <= 3) {
season = 1;
}
if (month >= 4 && month <= 6) {
season = 2;
}
if (month >= 7 && month <= 9) {
season = 3;
}
if (month >= 10 && month <= 12) {
season = 4;
}
int start_month = array[season - 1][0];
int end_month = array[season - 1][2];

Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
String years = dateFormat.format(date);
int years_value = Integer.parseInt(years);

int start_days = 1;// years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
@SuppressWarnings("unused")
int end_days = getLastDayOfMonth(years_value, end_month);
String seasonDate = years_value + "-" + start_month + "-" + start_days;
return seasonDate;

}

/**
* 获得本季度最后一天
*
* @param month
* @return
*/
@SuppressWarnings("unused")
public String getThisSeasonFinallyTime(int month) {
int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
int season = 1;
if (month >= 1 && month <= 3) {
season = 1;
}
if (month >= 4 && month <= 6) {
season = 2;
}
if (month >= 7 && month <= 9) {
season = 3;
}
if (month >= 10 && month <= 12) {
season = 4;
}
int start_month = array[season - 1][0];
int end_month = array[season - 1][2];

Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
String years = dateFormat.format(date);
int years_value = Integer.parseInt(years);

int start_days = 1;// years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
int end_days = getLastDayOfMonth(years_value, end_month);
String seasonDate = years_value + "-" + end_month + "-" + end_days;
return seasonDate;

}

/**
* 获取某年某月的最后一天
*
* @param year
*            年
* @param month
*            月
* @return 最后一天
*/
private int getLastDayOfMonth(int year, int month) {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
|| month == 10 || month == 12) {
return 31;
}
if (month == 4 || month == 6 || month == 9 || month == 11) {
return 30;
}
if (month == 2) {
if (isLeapYear(year)) {
return 29;
} else {
return 28;
}
}
return 0;
}

/**
* 是否闰年
*
* @param year
*            年
* @return
*/
public boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}

/**
* 是否闰年
*
* @param year
* @return
*/
public boolean isLeapYear2(int year) {
return new GregorianCalendar().isLeapYear(year);
}
}

摘自网络,希望能帮助你!

2012年6月11日 14:25

相关推荐

    C# 获取当前月的月初和月末

    ### C# 获取当前月的月初和月末 在C#编程语言中,经常需要处理与日期相关的操作,例如获取当前月份的起始日期(月初)和结束日期(月末)。这些功能在许多应用程序中都非常实用,尤其是在涉及到按月度进行数据统计...

    c#_根据当前时间获取_本周_本月_本季度_月初_月末_各个时间段

    本文将深入探讨如何使用C#中的DateTime类来获取当前时间,并基于此计算本周、本月、本季度以及月初、月末等各个时间段的具体日期。这对于进行时间序列数据分析、报表生成、日程安排等多种场景都具有重要的应用价值。...

    获取两个时间段的周一,周日以及月初和月末

    获取两个时间段的周一,周日以及月初和月末,java代码 获取两个时间段的周一,周日以及月初和月末,j

    获取当前日期所在周一和周末,月头和月末

    根据给定文件的信息,我们可以总结出以下几个重要的知识...综上所述,这些代码片段为我们提供了获取当前日期所在周一、周末以及月头和月末的有效方法。通过对这些方法的理解和运用,可以更好地处理日期相关的逻辑问题。

    自动获取全年每个月的月初日常到月末日期.xlsx

    自动获取全年每个月的月初日常到月末日期.xlsx

    月初和月末的方法和策略

    "月初和月末的方法和策略"这个主题涉及到获取当前日期的年初以及获取当前月份的最后一天这两个关键知识点。下面将详细解释这两个概念及其在不同编程语言中的实现。 首先,让我们来看看如何获取当前日期的年初。年初...

    php获取当前月与上个月月初及月末时间戳的方法

    首先,我们来看如何获取当前月的月初和月末时间戳: ```php $currentMonth = date('m'); $currentYear = date('Y'); $startOfMonth = $currentYear . '-' . $currentMonth . '-1'; $endOfMonth = $currentYear . ...

    日期工具Java类

    通过正确使用java.util.Calendar、java.text.SimpleDateFormat等类,可以轻松获取如当前日期、上月日期、上周日期等特殊日期,对于日志记录、数据统计和时间追踪等功能的实现至关重要。在实际开发中,应当仔细处理...

    易语言取上个月第一天和最后一天

    1. 获取当前日期:使用内置函数“取日期”(GetDate)可以获取系统当前的日期。 2. 减去一个月:我们需要一个函数或方法来实现“减一个月”的操作。这通常涉及对月份进行减1的操作,但要注意处理二月的情况,因为二...

    会计月末.月初工作内容整理.pdf

    【会计月末、月初工作实务】 会计工作在月末和月初尤其关键,这段时间内,会计需要对整个月的工作成果进行总结,编制报表,并进行纳税申报。在这个过程中,确保工作的准确性和高效性至关重要,避免因忙碌而产生的...

    Java日期处理类 自己整理的

    自己整理的Java日期处理类 。包含获取两个之间段之间的天数、月初日期,月末日期、一个时间段之间的所有的日期,月份 一周的第一天,最后一天、 当前是周几等。仅供参考

    基于Java语言编写的Spring Boot时间工具类方法封装

    当前的日期、根据指定日期得获取对应年份的所有月的日期、获取月初时间、获取月末时间、获取当天的起始时间、获取当天的结束时间、获取昨天的开始时间、获取昨天的结束时间、当前季度的开始时间、当前季度的结束时间...

    Java日期处理工具类

    基本涵盖了各种场景的日期处理需要,包括时间类型转换,获取N天前后,月初月末,某段时间按天拆分等功能,欢迎使用。

    linux 获取某个日期对应的月末日期方法

    最后,我们再次使用`date`命令,从这个月初日期减去一天,得到月末日期,并以`%F`格式(完整的日期,如2016-11-30)输出。 这种方法不仅适用于固定的日期,也可以处理动态输入的日期,从而在各种脚本和自动化任务中...

    DateUtils.js

    常用日期操作:年初,年末,月初,月末,本季度初,本季度末,周初日,周末等封装,扩展。

    C#获取时间

    - **本季度利润**:统计从季度初到当前日期的数据总和 - **本月新增客户**:统计从月初到当前日期的新注册用户数 通过以上方法,可以灵活地应对各种时间相关的数据处理需求。理解并熟练掌握 `DateTime` 类的使用...

    Java Date的使用

    此方法首先获取传入日期的月初,然后通过`Calendar`类向后添加一个月再减去一天来获得月末的日期。 ### 其他实用方法 除了以上介绍的方法之外,还可以定义其他实用的方法,例如将`Date`对象格式化为指定格式的字符...

    JAVA输入任意日期可获取当月万年历

    此外,为了让输出更易读,可以考虑添加一些格式化技巧,如对周末的日期进行特殊标记,或者突出显示当前日期。 在提供的压缩包文件"PerpetualCalendar"中,可能包含了实现这个功能的具体Java源代码。通过阅读和分析...

    java时间工具类

    非常全面,除了常规时间转换,还有 获取当月最大日期、当前的日期那一年的第几周、当前日期是那一年的第几天、当年、月第一天、最后一天、获得起始时间和结束时间范围内,所有的月初和月末等等

Global site tag (gtag.js) - Google Analytics