/**
* 得到开始时间到结束时间的所有日期,并得到对应日期的星期几
* 返回list 对象,里面存的字符串对象
* 对象的日期和星期几以 "," 割开
* eg: "2008-12-08,星期一"
*/
public static List twoDays(String str1,String str2){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
List list = new ArrayList();
Date date1;
Date date2;
try {
date1 = df.parse(str1);
date2 = df.parse(str2);
int s = (int) ((date2.getTime() - date1.getTime())/ (24 * 60 * 60 * 1000));
if(s>0){
for(int i = 0;i<=s;i++){
long todayDate = date1.getTime() + i * 24 * 60 * 60 * 1000;
Date tmDate = new Date(todayDate);
String tempDateStr = "";
tempDateStr = new SimpleDateFormat("yyyy-MM-dd").format(tmDate).toString() + "," +new SimpleDateFormat("E").format(tmDate);
System.out.println(tempDateStr);
list.add(tempDateStr);
}
}else{
if(s == 0){
long todayDate = date1.getTime();
Date tmDate = new Date(todayDate);
String tempDateStr = "";
tempDateStr = new SimpleDateFormat("yyyy-MM-dd").format(tmDate).toString() + "," +new SimpleDateFormat("E").format(tmDate);
}
}
} catch (ParseException e) {
System.out.println("转换错误");
}
return list;
}问题是只能正确打印25天的,而超过25天就会返回上个月的日期
麻烦那位帮看看
解决方案 »
- JTree节点上的JPopupMenu在linux下不能显示
- 请问 大家有没有 java程序连接 先拨通 ssl vpn , 然后 通过ssl vpn连接 访问数据库 的方法 。。
- JAVA中执行器的问题
- 关于dom4j生成xml的问题,在线等!!
- java table 滚动条 急急急
- 求进程调度编程
- 我如何在提交一个请求给我的jsp页面前.提交另一个请求给别的一个站点?
- 在JAVA中Primitive type 和 Wrapper type类型的关系是什么?
- 请问哪里有 Sun J2SE V1.4.2 JRE 完整安装简体中文版 for Windows 下载? 注意:不是Sun公司主页提供的那种网络安装版。
- 好的建议 , 不给分得"非典"!! --- 使用weblogic/Tomcat4 自带的数据库连接池, 是否必须下载JDBC2.0(各种数据库下的JDBC) ?
- TOMCAT 问题!!
- 求完整代码,得到正确的就结贴
我这也是网上copy的,然后更改了一下,具体是什么错误,我也不清楚
但前面日期是正确的,后面日期有问题,我就不明白了,
麻烦能否帮我标记下错误在哪里,谢谢了
public static List twoDays(String str1,String str2){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
List list = new ArrayList();
try {
Date b=df.parse(str1);
Date e=df.parse(str2);
Calendar c=Calendar.getInstance();
c.setTime(b);
while (e.compareTo(c.getTime())>=0){
String tempDateStr = "";
tempDateStr = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()).toString() + "," +new SimpleDateFormat("E").format(c.getTime());
System.out.println(tempDateStr);
list.add(tempDateStr);
c.add(c.DATE, 1);
}
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return list;
}
可以改成long todayDate = date1.getTime() + i * 24 * 60 * 60 * 1000L;这样i * 24 * 60 * 60 * 1000L就是一个long型,应该就没问题了。
其实感觉作为解决方案来说还是3楼的比较好,呵呵