JAVA程序,从键盘上输入分别代表年,月,日的三个数,计算该日在本年是第几天,在第几周上

看下哪错了

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.print("请输入年份:");
int year=sc.nextInt();
System.out.print("请输入月份:");
int month=sc.nextInt();
System.out.print("请输入日:");
int day=sc.nextInt();
int sum=0;
for(int i=1;i<month;i++){
if(year>0&month>0&month<13&day>0&day<32)
{
int days=0;
System.out.println("i:"+i);
switch (i)
{
case 1:days=31;
break;
case 3:days=31;
break;
case 5:days=31;
break;
case 7:days=31;
break;
case 8:days=31;
break;
case 10:days=31;
break;
case 12:days=31;
break;
}
if(year>0&month>0&month<13&day>0&day<31)
{
int days=0;
System.out.println("i:"+i);
switch (i)
{
case 4:days=30;
break;
case 6:days=30;
break;
case 9:days=30;
break;
case 11:days=30;
break;
case 2:
{
if((year%4==0&&year%100!=0)||year%400==0)
days=29;
else
days=28;
}
break;
}
System.out.println(days);
sum=sum+days;
}
System.out.println(sum);
}
sum=sum+day;
int couth=0;
for(int i1=1;i1<=28;i1++){
if(couth%7==0)
couth=couth;
else
couth=couth+1;
break;
}
System.out.println(year+"年"+month+"月"+day+"日是"+year+"年的第"+sum+"天"+"在第"+couth+"周上");
else
{
System.out.println("数据输入错误!");
}
}
}
}

  你这个写法太复杂了,这就是一个几行的代码。使用calendar里面有个weekOfYear

Scanner sc = new Scanner(System.in);
  System.out.print("请输入年份:");
  int year = sc.nextInt();
  System.out.print("请输入月份:");
  int month = sc.nextInt();
  System.out.print("请输入日:");
  int day = sc.nextInt();
  Calendar ca = Calendar.getInstance();
  ca.set(Calendar.YEAR, year);
  ca.set(Calendar.MONTH, month-1);
  ca.set(Calendar.DATE, day);
  System.out.println(ca.get(Calendar.DAY_OF_YEAR));
  System.out.println(ca.get(Calendar.WEEK_OF_YEAR));
  sc.close();

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-12
days命名冲突
后面的两个else错了
相似回答