zoukankan      html  css  js  c++  java
  • 完善3-32的MyDate类

    package 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("%2d",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 yesterday()
    {
    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.yesterday()));
    }
    }

  • 相关阅读:
    wsl中的git问题
    接口测试框架实战(三)| JSON 请求与响应断言
    接口测试框架实战(二)| 接口请求断言
    面试大厂测试开发之前,你需要做好哪些准备?
    接口测试框架实战(一) | Requests 与接口请求构造
    实战 | UI 自动化测试框架设计与 PageObject 改造
    用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告
    外包测试的职业发展利弊分析与建议
    做软件测试,到底能不能去外包?
    移动自动化测试入门,你必须了解的背景知识和工具特性
  • 原文地址:https://www.cnblogs.com/wjm0910/p/6797025.html
Copyright © 2011-2022 走看看