日期:2014-05-20  浏览次数:20768 次

大侠们 帮我解释下 尤其是for循环里的
/*编写一个java   程序,输入一个年月日,输出该日期是当年的第几天(注意考虑到闰年)?*/
import   java.io.*;
public   class   Tian{
public   static   void   main(String[]   args)   throws   IOException{
BufferedReader   bf   =   new   BufferedReader(new   InputStreamReader(System.in));
System.out.println( "请输入一个年份: ");
String   str=bf.readLine();
int   a=Integer.parseInt(str);
System.out.println( "请输入一个月份: ");
String   str1=bf.readLine();
int   b=Integer.parseInt(str1);
System.out.println( "请输入一个日期: ");
String   str2=bf.readLine();
int   c=Integer.parseInt(str2);
for(int   i=1;i <b;i++){
                          switch(i){
                              case   1:
                              case   3:
                              case   5:
                              case   7:
                              case   8:
                              case   10:c+=31;break;
                              case   4:
                              case   6:  
                              case   9:
                              case   11:c+=30;break;
                              case   2:c+=28;break;
              }

                      }
        if(((a%4==0&&a%100!=0)||a%400==0)&&b> 2)
                          c+=1;
        System.out.println( "是本年的第= "+c);
}
}

------解决方案--------------------
大月,小月....
2月..28天
case如果没有break,就不会跳出,继续检测下一个case
"full-through "
------解决方案--------------------
计算到指定月的天数
------解决方案--------------------
哎 JAVA API 有现成的直接用就可以了,干嘛这么麻烦啊
------解决方案--------------------
如果真正要自己实现,也应该用查表法来做。

------解决方案--------------------
用更面向对象一点的方法吧

输入是年 月 日 首先得有一个单参方法判断该是平年还是闰年 isLeapYear(int year) 具体实现不多写了 网上很多的
其次再设计一个根据月份判断当月天数的方法 双参
int getDaysOfMonth(int year, int month){
int days;
switch(month){
case 1:
days=31;
case 2:
if(isLeapYear(year)){