zoukankan      html  css  js  c++  java
  • 完善类3.2的数据类型

    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()));
     }
    }

  • 相关阅读:
    上下伸展的JS菜单
    [ZZ]Debug VBScript with Visual Studio
    面试总结之杂题
    [ZZ]9 Confusing Naming Conventions for Beginners
    Robocopy
    [ZZ]什么是Alpha,Beta,RC,RTM,CTP版
    使用位运算交换两个值,不用临时变量
    学习笔记之编程之美微软技术面试心得(一)
    C#中如何获取系统环境变量
    学习笔记之SQL教程 from W3School
  • 原文地址:https://www.cnblogs.com/gpz12/p/6725956.html
Copyright © 2011-2022 走看看