java程序 计算今天距离过去某一天的天数

publicintdates(){try{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.i... public int dates()

{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.println("请输入过去的年份");
this.a =Integer.parseInt(br.readLine());

System.out.println("请输入过去的月份");
this.b =Integer.parseInt(br.readLine());

System.out.println("请输入过去的日期");
this.c = Integer.parseInt(br.readLine());
}
catch (IOException e)
{

int y=a+1;
while(y<year){
if(y%4==0&&y%100!=0||y%400==0)
n=n+366;
else
n=n+365;
y=y+1;
}
//计算中间整个年的天数
if(a!=year){
switch(b){
case 1:n=n+365;
break;
case 2:n=n+334;
break;
case 3:n=n+306;
break;
case 4:n=n+275;
break;
case 5:n=n+245;
break;
case 6:n=n+214;
break;
case 7:n=n+184;
break;
case 8:n=n+153;
break;
case 9:n=n+122;
break;
case 10:n=n+92;
break;
case 11:n=n+61;
break;
case 12:n=n+31;
break;
}
}
//计算过去的年距离下一年的天数

switch(month){
case 1:n=n+0;
break;
case 2:n=n+31;
break;
case 3:n=n+59;
break;
case 4:n=n+90;
break;
case 5:n=n+120;
break;
case 6:n=n+151;
break;
case 7:n=n+181;
break;
case 8:n=n+212;
break;
case 9:n=n+243;
break;
case 10:n=n+273;
break;
case 11:n=n+304;
break;
case 12:n=n+334;
break;
}
//计算当前年已经过了的天数

if(year%4==0&&a%100!=0&&month>2)
n=n+day+1-c;
else
n=n+day-c;

}
return n;

}

麻烦帮忙看看我的算法有问题吗 输出一直是0
import java.util.*;
import java.io.*;
public class daysCalculation {

int year;
int month;
int day;
int a;
int b;
int c;
int n;

public void get() {
//日期
Calendar ca = Calendar.getInstance();
//年
this.year = ca.get(Calendar.YEAR);
//月
this.month=ca.get(Calendar.MONTH)+1;
//日
this.day=ca.get(Calendar.DATE);

}

前面

public static void main(String args[]) {
daysCalculation result=new daysCalculation();
result.get();

System.out.println("距离那一天已经"+result.dates()+"天");
}
}
后面
展开
 我来答
hitzsf
2014-03-10 · TA获得超过2060个赞
知道大有可为答主
回答量:1741
采纳率:78%
帮助的人:1155万
展开全部
看不懂,代码中变量n、year、month都是啥意思,从哪里获得的?
而且这种代码还真是要人命,java中有现有的api,你应该选择合适而且简洁的方法
直接构造出过去的date,取得时间,与当前的日期相减,得到的毫秒数做处理
追问
好吧估计看起来是挺困难的。。。
因为刚学所以只能自己编算法
追答
那段计算时间的代码你放入catch块中了,如无意外,根本不会执行,移出catch块
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式