我想得到2008-01-01到2008-04-21的每一天
Date tempDate = new Date(qsDate.getTime() + 1000*60*60*24*j);
qsDate:为一个日期 比如说2008-01-01
j:是一个从1开始的数字。运行结果,运行发现,当tempDate增加为2008-01-25,再增加就变成2007-12-07,
[2008-01-01, 2008-01-02, 2008-01-03,
2008-01-04, 2008-01-05, 2008-01-06,
2008-01-07, 2008-01-08, 2008-01-09,
2008-01-10, 2008-01-11, 2008-01-12,
2008-01-13, 2008-01-14, 2008-01-15,
2008-01-16, 2008-01-17, 2008-01-18,
2008-01-19, 2008-01-20, 2008-01-21,
2008-01-22, 2008-01-23, 2008-01-24,
2008-01-25, 2007-12-07, 2007-12-08,
2007-12-09, 2007-12-10, 2007-12-11,
2007-12-12, 2007-12-13, 2007-12-14,
2007-12-15, 2007-12-16, 2007-12-17,
2007-12-18, 2007-12-19, 2007-12-20,
2007-12-21, 2007-12-22, 2007-12-23,
2007-12-24, 2007-12-25, 2007-12-26,
2007-12-27, 2007-12-28, 2007-12-29,
2007-12-30, 2007-12-31,]
Date tempDate = new Date(qsDate.getTime() + 1000*60*60*24*j);
qsDate:为一个日期 比如说2008-01-01
j:是一个从1开始的数字。运行结果,运行发现,当tempDate增加为2008-01-25,再增加就变成2007-12-07,
[2008-01-01, 2008-01-02, 2008-01-03,
2008-01-04, 2008-01-05, 2008-01-06,
2008-01-07, 2008-01-08, 2008-01-09,
2008-01-10, 2008-01-11, 2008-01-12,
2008-01-13, 2008-01-14, 2008-01-15,
2008-01-16, 2008-01-17, 2008-01-18,
2008-01-19, 2008-01-20, 2008-01-21,
2008-01-22, 2008-01-23, 2008-01-24,
2008-01-25, 2007-12-07, 2007-12-08,
2007-12-09, 2007-12-10, 2007-12-11,
2007-12-12, 2007-12-13, 2007-12-14,
2007-12-15, 2007-12-16, 2007-12-17,
2007-12-18, 2007-12-19, 2007-12-20,
2007-12-21, 2007-12-22, 2007-12-23,
2007-12-24, 2007-12-25, 2007-12-26,
2007-12-27, 2007-12-28, 2007-12-29,
2007-12-30, 2007-12-31,]
import java.util.Calendar;public class Main { public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH,0);
cal.set(Calendar.DATE,1); while (true)
{ if (cal.get(Calendar.MONTH) == 3 && cal.get(Calendar.DATE) == 22)
{
break;
} System.out.println(cal.getTime());
cal.add(Calendar.DATE,1);
}
}
}
不过现在推荐使用 Calendar
Date 基本废弃。
package zhao;import javax.swing.*;import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.logging.Logger;public class Test1 {
public static void main(String[] args)
{
String s = "2008-01-01到2008-04-21";
Calendar c1 = Calendar.getInstance();
c1.set(2008, 0, 1);
Calendar c2 = Calendar.getInstance();
c2.set(2008, 3, 21);
int count = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR);
for(int i=0;i<count;i++) {
System.out.println(c1.get(Calendar.YEAR)+"-"+(c1.get(Calendar.MONTH)+1)+"-"+c1.get(Calendar.DATE));
c1.add(Calendar.DATE, 1);
}
}
}
后来发现是我们设置的时间叠加溢出了...