黑马程序员技术交流社区

标题: 黑马新手困惑的问题--->? [打印本页]

作者: 金肖    时间: 2012-4-30 02:05
标题: 黑马新手困惑的问题--->?
如何获得任意一年中二月的天数?
作者: 马浩    时间: 2012-4-30 08:34
//先判断是否为闰年,
//判断是否为闰年的条件是:能被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+"天");
                        }
        }
}
作者: 刘基军    时间: 2012-4-30 08:56
另外,使用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. }
复制代码

作者: 褚代江    时间: 2012-4-30 08:57
本帖最后由 褚代江 于 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月的最后一天
        }
}
这是毕老师的一道课后题,可以试试
作者: 罗旭维    时间: 2012-4-30 09:20
毕老师视频里的方法:

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号,是即闰年
        }
}
这个方法是把日期设为指定年份的三月,然后减一天会到二月的最后一天也就是二月的天数了。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2