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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 金肖 中级黑马   /  2012-4-30 02:05  /  1772 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何获得任意一年中二月的天数?

4 个回复

倒序浏览
//先判断是否为闰年,
//判断是否为闰年的条件是:能被4整除但不能被100整除的和能被400整除的年份是闰年
//闰年二月为29天,否则为28天
class Day
{
        public static void main(String []args)
        {
                int year=2100;//要求的年份
                int        day;
       
       
                if(year%4==0&&year%100!=0||year%400==0)//判断是否是闰年,是就打印29天,否就打印28天
                        {
                        day=29;
                        System.out.println(year+"年中二月是"+day+"天");
                        }
                else
                        {
                        day=28;
                        System.out.println(year+"年中二月是"+day+"天");
                        }
        }
}

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
另外,使用Calendar类也可以实现:
  1. import java.util.Calendar;

  2. class TestDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                  System.out.println(isLeapYear(2010));
  7.                  System.out.println(isLeapYear(2000));
  8.                  System.out.println(isLeapYear(2020));
  9.         }
  10.         public static String isLeapYear(int year)
  11.         {
  12.                  Calendar c = Calendar.getInstance();
  13.                  c.set(Calendar.YEAR, year);                        //将时间设为目的年的3月1日
  14.                  c.set(Calendar.MONTH, 2);
  15.                  c.set(Calendar.DAY_OF_MONTH, 1);
  16.                 
  17.                  c.add(Calendar.DAY_OF_MONTH, -1);        //将时间提前一天
  18.                 
  19.                  return c.get(Calendar.DAY_OF_MONTH)==29 ? year+"是闰年": year+"不是是闰年";        //判断2月的最后一天是不是29号,是即闰年
  20.         }
  21. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 褚代江 于 2012-4-30 08:58 编辑

import java.util.*;
class  CalendarDemo2
{
        public static void main(String[] args)
        {
                Calendar c=Calendar.getInstance();
                int a=2011;

                c.set(a,2,1);//这里设置的是int a年的3月1日
                c.add(Calendar.DAY_OF_MONTH,-1);//这是将日期向前挪一天,也就是2月的最后一天

                System.out.println(c.get(Calendar.DAY_OF_MONTH));//打印2月的最后一天
        }
}
这是毕老师的一道课后题,可以试试

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
毕老师视频里的方法:

class T1
{
        public static void main(String[] args)
        {
                 System.out.println("2010年2月有"+ dayOfMonth(2010)+"天");
                 System.out.println("2000年2月有"+ dayOfMonth(2000)+"天");
                 System.out.println("2020年2月有"+ dayOfMonth(2020)+"天");
        }
        public static String dayOfMonth(int year)
        {
                 Calendar c = Calendar.getInstance();
                 c.set(Calendar.YEAR, year);                        //将时间设为目的年的3月1日
                 c.set(Calendar.MONTH, 3);
                // c.set(Calendar.DAY_OF_MONTH, 1);
                 
                 c.add(Calendar.DAY_OF_MONTH, -1);        //将时间提前一天
                 
                 return new Integer(c.get(Calendar.DAY_OF_MONTH)).toString() ;
                 //return c.get(Calendar.DAY_OF_MONTH)==29 ? year+"是闰年": year+"不是是闰年";        //判断2月的最后一天是不是29号,是即闰年
        }
}
这个方法是把日期设为指定年份的三月,然后减一天会到二月的最后一天也就是二月的天数了。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马