论坛首页 Java企业应用论坛

求某年12个月的开始结束日期

浏览 2527 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-05-04  

题外话:

这个题目有很简单的做法,但是我更喜欢使用这种方式,这里是将12个月的开始时间和结束时间作为map的value属性,月份作为map的key属性,存储在map集合中,详细且看下文,

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class TimeMonth {

	protected Calendar date = null;

	protected final static Integer MONTH_COUNT = 12;

	protected SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

	protected Map<Integer, String[]> monthDateMap = new LinkedHashMap<Integer, String[]>();

	public TimeMonth(int year) {

		date = Calendar.getInstance();
		date.set(Calendar.YEAR, year);
		for (int i = 0; i < MONTH_COUNT; i++) {

			date.set(Calendar.MONTH, i);
			int minMonthDate = date.getActualMinimum(Calendar.DAY_OF_MONTH);
			date.set(Calendar.DATE, minMonthDate);
			String startMonth = dateFormat.format(date.getTime());
			int maxMonthDate = date.getActualMaximum(Calendar.DAY_OF_MONTH);
			date.set(Calendar.DATE, maxMonthDate);
			String endMonth = dateFormat.format(date.getTime());

			String monthDate[] = {startMonth,endMonth};
			monthDateMap.put(i + 1, monthDate);
		}
	}

	/**
	 * 要获取的 monthDateMap
	 * 
	 * @return monthDateMap
	 */
	public Map<Integer, String[]> getMonthDateMap() {

		return monthDateMap;
	}

	/**
	 * 要设置的 monthDateMap
	 * 
	 * @param monthDateMap
	 */
	public void setMonthDateMap(Map<Integer, String[]> monthDateMap) {
		this.monthDateMap = monthDateMap;
	}
	
	public static void main(String[] args) {

		TimeMonth mon = new TimeMonth(2010);
		Map<Integer,  String[]> monthDate = mon.getMonthDateMap();

		Set<Entry<Integer,  String[]>> set = monthDate.entrySet();
		for (Entry<Integer,  String[]> entry : set) {
			Integer monthNum = entry.getKey();
			 String[] months = entry.getValue();
			System.out.println("第 " + monthNum + " 个月的开始日期为:"
					+ months[0] + ",结束日期为:"
					+ months[1]);
		}
	}

}

 

这里的测试的年份为2010年,这段代码与闰年平年无关,结果为:

 

第 1 个月的开始日期为:2010-01-01,结束日期为:2010-01-31
第 2 个月的开始日期为:2010-02-01,结束日期为:2010-02-28
第 3 个月的开始日期为:2010-03-01,结束日期为:2010-03-31
第 4 个月的开始日期为:2010-04-01,结束日期为:2010-04-30
第 5 个月的开始日期为:2010-05-01,结束日期为:2010-05-31
第 6 个月的开始日期为:2010-06-01,结束日期为:2010-06-30
第 7 个月的开始日期为:2010-07-01,结束日期为:2010-07-31
第 8 个月的开始日期为:2010-08-01,结束日期为:2010-08-31
第 9 个月的开始日期为:2010-09-01,结束日期为:2010-09-30
第 10 个月的开始日期为:2010-10-01,结束日期为:2010-10-31
第 11 个月的开始日期为:2010-11-01,结束日期为:2010-11-30
第 12 个月的开始日期为:2010-12-01,结束日期为:2010-12-31

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics