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(1996,1,13);
    }
    public MyDate(MyDate d)                                         //重载函数
    {
    this.set(d);
    }
    public void set(int year,int month,int day)
    {
    this.year=year;                                                      //this指当前的成员变量
    this.month=(month>=1&&month<=12)?month:1;    //是否在1到12月份的指定范围内
    this.day=(day>=1&&day<=31)?day:1;
    }
    public void set(MyDate d)                                        //重载
    {
    set(d.year,d.month,d.day);                                     //调用同名成员函数,不能使用this指针
    }
    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)                                //比较当前日期是否与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++;                                                          //改变this指针引用的实例值
    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(2011,10,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()));
    }
    }

  • 相关阅读:
    串学习笔记
    C深度剖析学习笔记
    记英语单词ag
    树学习笔记
    如何做好项目总结
    易学队第二次团队会议
    易学队第四次团队会议
    易学队第五次团队会议
    易学队第一次团队会议
    易学队第三次团队会议
  • 原文地址:https://www.cnblogs.com/kexiaole/p/6862046.html
Copyright © 2011-2022 走看看