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

  • 相关阅读:
    WPF Caliburn 学习笔记(五)HelloCaliburn
    MSDN 教程短片 WPF 20(绑定3ObjectDataProvider)
    MSDN 教程短片 WPF 23(3D动画)
    比赛总结一
    HDU3686 Traffic Real Time Query System
    HDU3954 Level up
    EOJ382 Match Maker
    UESTC1565 Smart Typist
    HDU3578 Greedy Tino
    ZOJ1975 The Sierpinski Fractal
  • 原文地址:https://www.cnblogs.com/kexiaole/p/6862046.html
Copyright © 2011-2022 走看看