日期:2014-05-17  浏览次数:20705 次

菜鸟求教:日期计算问题
//用户输入年份,计算到2013年的相距时间
import java.util.*;
public class rili1 {
public static void main (String arg[]){
System.out.println("请输入年份");
Scanner in =new Scanner(System.in);
int year = in.nextInt();
int rn=0,c=0;//rn是瑞年的次数,c是最终的天数
for(int a=2013;year<a;year++){
 if(year%4==0&&year%100!=0||(year%100==0&&year%100==0)){
 rn++;//从输入年份循环到2013年,看看有几个瑞年
 }else{};
}
c=366*rn-(2013-year-rn)*365;//瑞年*366+平年*365
System.out.println("一共"+c+"天");
}
}


c=366*rn-(2013-year-rn)*365;  应该是瑞年的时间加上平年的时间。为什么要用减去呢。
(2013-year-rn)*365  算出来的是负数

------解决方案--------------------
哦,不对,看错了,你直接用year变量不对啦,它值已经变掉啦,
	        System.out.println("请输入年份");
        Scanner in =new Scanner(System.in);
        int year = in.nextInt();
        int totalYear = 2013-year;
        int rn=0,c=0;//rn是瑞年的次数,c是最终的天数
        for(int a=2013;year<a;year++){
         if(year%4==0&&year%100!=0
------解决方案--------------------
(year%100==0&&year%100==0)){
             rn++;//从输入年份循环到2013年,看看有几个瑞年
         }else{};
        }
        c=366*rn+(totalYear-rn)*365;//瑞年*366+平年*365
        System.out.println("一共"+c+"天");