• 完善例题3.2 日期类 MyDate


    public class MyDate 
    {
      private int year,month,day;
      private static int thisYear;
      static 
      {
       thisYear=2012;
      }
      public MyDate(int year,int month,int day)
      {
       this.set(year,month,day);
      }
      public MyDate()
      {
       this(1970,1,1);
      }
      public MyDate(MyDate d)
      {
       this.set(d);
      }
      public void set(int year,int month,int day)
      {
       this.year=year;
       this.month=(month>=1&&month<=12)?month:1;
       this.day=(day>=1&&day<=31)?day:1;
      }
      public void set(MyDate d)
      {
       set(d.year,d.month,d.day);
      }
      public int getYear()
      {
       return this.year;
      }
      public int getMonth()
      {
       return this.month;
      }
      public int getDay(){
       return this.day;
      }
      public String toString(){
       return year+"年"+String.format("%02d",month)+"月"+String.format("%02d",day)+"日";
      }
      public static int getThisYear()
      {
       return thisYear;
      }
      public static boolean isLeapYear(int year)
      {
       return year%400==0||year%100!=0&&year%4==0;
      }
      public boolean isLeapYear()
      {
       return isLeapYear(this.year);
      }
      public boolean equals(MyDate d)
      {
       return this==d||d!=null&&this.year==d.year&& this.month==d.month &&this.day==d.day;
      }
      public static int daysOfMonth(int year,int month)
      {
       switch(month)
       {
        case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;
        case 4: case 6: case 9: case 11: return 30;
        case 2: return MyDate.isLeapYear(year)?29:28;
        default: return 0;
       }
      }
      public int daysofMonth()
      {
       return daysOfMonth(this.year,this.month);
      }
      public void tomorrow()
      {
       this.day++;
       if(this.day>this.daysofMonth())
       {
        this.day=1;
        this.month++;
        if(this.month>12)
        {
         this.month=1;
         this.year++;
        }
       }
      }
      public MyDate yestoday()
      {
       MyDate date=new MyDate(this);
       date.day--;
       if(date.day==0)
       {
        date.month--;
        if(date.month==0)
        {
         date.month=12;
         date.year--;
        }
        date.day=daysOfMonth(date.year,date.month);
       }
       return date;
      }
    }
    class MyDate_ex
    {
     public static void main(String args[])
     {
      System.out.println("今年是"+MyDate.getThisYear()+",闰年?"+MyDate.isLeapYear(MyDate.getThisYear()));
      MyDate d1=new MyDate(2012,12,31);
      MyDate d2=new MyDate(d1);
      System.out.println("d1: "+d1+",d2: "+d2+",d1==d2? "+(d1==d2)+", d1.equals(d2)? "+d1.equals(d2));
      System.out.print(d1+"的明天是       ");
      d1.tomorrow();
      System.out.println(d1+" "+d1+"的昨天是    "+(d2=d1.yestoday()));
     }
    }

  • 相关阅读:
    java基础>包、访问权限、命名规范 小强斋
    java基础>Static 和 Final 关键字 小强斋
    java基础>对象的创建过程(初始化、析构、清理) 小强斋
    iPhone 上少用三元操作符 ? :
    QQ群人满了
    面向对象C语言(ObjectiveC)编程简介
    java Integer.ValueOf(int)和new Integer(int)性能比较
    关于在iPhone上合并2个应用程序(App)成一个
    java Preferences持久化使用示例
    Memcache VS MySQL Query Cache.
  • 原文地址:https://www.cnblogs.com/dx20152111104/p/6728964.html
Copyright © 2020-2023  润新知