• 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("%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.day==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"+",d1==d2?"+(d1==d2)+",d1.equal(d2)?"+d1.equals(d2)); System.out.print(d1+"的明天是 "); d1.tomorrow(); System.out.println(d1+" "+d1+"的昨天是 "+(d2=d1.yestoday())); }

    }

     
     
  • 相关阅读:
    spring boot SpringApplication.run 执行过程
    算法 计算四则运算字符串结果
    算法 RingBuffer
    java BigDecimal 四舍五入
    算法 常用函数和近似
    java 多线程执行
    Java 三个线程依次输出ABC
    Java interrupt 中断
    java 垃圾收集器与内存分配策略
    软件项目与软件产品的区别
  • 原文地址:https://www.cnblogs.com/b983766/p/7000623.html
Copyright © 2020-2023  润新知