给两个时间:起始日期和终止日期,比如2008-12-25 2009-01-10,求一函数,把它的月数列出来,要可以跨年。
得出下面结果:
2008-10-25至2008-10-31
2008-11-01至2008-11-30
2008-12-01至2008-12-31
2009-01-01至2009-01-31
2009-02-01至2009-02-28
2009-03-01至2009-03-10
得出下面结果:
2008-10-25至2008-10-31
2008-11-01至2008-11-30
2008-12-01至2008-12-31
2009-01-01至2009-01-31
2009-02-01至2009-02-28
2009-03-01至2009-03-10
解决方案 »
- java标签的使用,急啊
- 谁能给我说下javaSE里主要的知识点啊 都学完了 心里一团乱麻 想抓重点温习下
- java实体类的系列化问题?
- 找个高人远程教我配一下s2sh
- 关于 getCurrentSession() 和 openSession()
- 用struts+hibernate+spring 开发一直未解决的问题?哪位大哥能给点提示?
- 对继承的一些讨论
- 面试题 快速测试
- 如何移动指点的一个Element以及其下的所有Element(dom4j)
- 可以建一个abstract EntityBean 但不和具体的表相连,而contactEntityBean extends 它 呢 这可以吗?
- linux下的路径问题?
- bs架构,使用java开发的系统可以在浏览器关闭的情况下给出消息提示吗?
private static void printYearMonth(String start, String end) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date s = sdf.parse(start);
Date e = sdf.parse(end);
Calendar cals = Calendar.getInstance();
cals.setTime(s);
Calendar cale = Calendar.getInstance();
cale.setTime(e);
StringBuffer sb = new StringBuffer();
while (cals.before(cale)) {
sb.append(sdf.format(cals.getTime()));
sb.append("至");
cals.set(Calendar.DATE, 1);
cals.add(Calendar.MONTH, 1);
if (cals.after(cale)) {
cals = cale;
sb.append(sdf.format(cals.getTime()) + "\n");
break;
}
cals.add(Calendar.DATE, -1);
sb.append(sdf.format(cals.getTime()) + "\n");
cals.add(Calendar.DATE, 1); }
System.out.print(sb.toString());
}
public static void main(String[] args) throws Exception { String start = "2008-11-25";
String end = "2009-03-10"; printYearMonth(start, end);
}