A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

java.util.Scanner;
class LeapYear{      
        public static void main(String[] arge){         
                System.out.print("请输入年份");      
                int year;        
                Scanner scanner = new Scanner(System.in);     
                year = scanner.nextInt();     
                if (year<0||year>3000){         
                        System.out.println("年份有误,程序退出!");         
                        System.exit(0);         
                        }      
                if ((year%4==0)&&(year%100!=0))         
                        System.out.println(year+"闰年");     
                else           
                        System.out.println(year+"不是闰年 ");     
                }
        }
        }
}

请问一下大家,这样算闰年对么。


评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

4 个回复

倒序浏览
FFF 金牌黑马 2013-10-30 16:59:23
沙发
本帖最后由 FFF 于 2013-10-30 17:01 编辑

*闰年的条件是符合下面二者之一:(1)年份能被4整除,但不能被100整除;(2)能被400整除。
(如2004年就是闰年,1800年不是。)2。能被400整除。(如2000年是闰年)
  1. if(((year % 4 == 0)&& (year % 100 != 0))||year%400 == 0)
  2.                         System.out.println(year + " 是闰年");
  3.                 else
  4.                         System.out.println(year + " 不是闰年");
  5.         }


复制代码

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 Jim-剣◆﹏ 于 2013-10-30 20:21 编辑

明显不对,应该先明确判断条件:什么是闰年?可以被4整除不能被100整除,或者可以被400整除
  1. import java.util.*;
  2. class YearDemo
  3. {
  4.         public static void main(String args[])
  5.         {
  6.                 Scanner sc = new Scanner(System.in);
  7.         int year = sc.nextInt();
  8.                 do{
  9.                        
  10.                         if((year%4==0&&year%100!=0)|year%400==0)
  11.                                 System.out.println(year+"属于闰年");
  12.                         else
  13.                                 System.out.println(year+"不属于闰年");
  14.                 }while((year = sc.nextInt())!=-1);
  15.           System.out.println("程序结束");
  16.         }
  17. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 喂,咱不离! 于 2013-10-30 20:34 编辑

哥们儿用日期类吧,别再做逻辑判断了。
  1. import java.util.*;
  2. public class test
  3. {
  4.         public static void main(String[] args) {               
  5.                 System.out.println(isLeapYear());
  6.         }
  7.         public static String isLeapYear() {
  8.                 Scanner sc = new Scanner(System.in);
  9.                 Calendar c = Calendar.getInstance();
  10.                 System.out.println("请输入您要判断的年份;");
  11.                 int year = sc.nextInt();
  12.                 c.set(year, 2, 1);//获取任意年的三月一日
  13.                 c.add(Calendar.DAY_OF_MONTH, -1);//用三月一日减去一天,就是二月的最后一天啦
  14.                 return c.get(Calendar.DAY_OF_MONTH) == 29 ? "闰年" : "平年";//三元运算符,二月的最后一天是29的话就是闰年,反之平年~
  15.         }
  16. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
如果问题已经解决,请及时修改主题为“提问结束”
修改方法:
http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马