欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-16 00:01:13
...

题外话:

这个题目有很简单的做法,但是我更喜欢使用这种方式,这里是将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