浏览 2547 次
锁定老帖子 主题:求某年12个月的开始结束日期
精华帖 (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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |