大侠们 帮我解释下 尤其是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)){