主题:[讨论]大哥大姐们进来帮我看下这代码怎么执行不正确啊?
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Time2012 extends Thread{
/**
* 功能描述:使用线程 计算2012.1.1的秒数到系统当前的秒数的时间差,并隔1秒打印出来
* @param args
*/
public void run(){
//方法返回一个 Calendar 对象的实例
Calendar cal2012 = Calendar.getInstance();
//设置为2012年1月1日
cal2012.set(Calendar.YEAR, 2012);
cal2012.set(Calendar.MONTH, 1);
cal2012.set(Calendar.DATE, 1);
//显示系统的当前秒数 (是1970.1.1到系统当前的秒数) Ⅰ
System.out.println(System.currentTimeMillis()/1000);
//显示1970.1.1到2012.1.1的秒数 Ⅱ
System.out.println(cal2012.getTimeInMillis()/1000);
//将 Ⅱ - Ⅰ 的值赋给lo
long lo = (cal2012.getTimeInMillis() - System.currentTimeMillis()) / 1000;
//显示 Ⅱ - Ⅰ 的值 (2012.1.1 - 系统当前秒数的值)
System.out.println(lo);
while(lo >= 0){
lo--;
System.out.println("离2012年1月1日还有"+lo+"秒。");
try {
//休眠 1 秒
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("离2012年1月1日时间到!");
}
public static void main(String[] args) {
Time2012 t = new Time2012();
//启动线程
t.start();
}
}
就是系统当前秒数到2012.1.1的秒数还差多少秒.
但是运行第一次和以后运行时,每次的起始秒数都相同了,这个怎么解决啊?
import java.util.Date;
import java.util.GregorianCalendar;
public class Time2012 extends Thread{
/**
* 功能描述:使用线程 计算2012.1.1的秒数到系统当前的秒数的时间差,并隔1秒打印出来
* @param args
*/
public void run(){
//方法返回一个 Calendar 对象的实例
Calendar cal2012 = Calendar.getInstance();
//设置为2012年1月1日
cal2012.set(Calendar.YEAR, 2012);
cal2012.set(Calendar.MONTH, 1);
cal2012.set(Calendar.DATE, 1);
//显示系统的当前秒数 (是1970.1.1到系统当前的秒数) Ⅰ
System.out.println(System.currentTimeMillis()/1000);
//显示1970.1.1到2012.1.1的秒数 Ⅱ
System.out.println(cal2012.getTimeInMillis()/1000);
//将 Ⅱ - Ⅰ 的值赋给lo
long lo = (cal2012.getTimeInMillis() - System.currentTimeMillis()) / 1000;
//显示 Ⅱ - Ⅰ 的值 (2012.1.1 - 系统当前秒数的值)
System.out.println(lo);
while(lo >= 0){
lo--;
System.out.println("离2012年1月1日还有"+lo+"秒。");
try {
//休眠 1 秒
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("离2012年1月1日时间到!");
}
public static void main(String[] args) {
Time2012 t = new Time2012();
//启动线程
t.start();
}
}
就是系统当前秒数到2012.1.1的秒数还差多少秒.
但是运行第一次和以后运行时,每次的起始秒数都相同了,这个怎么解决啊?