完善例题3.2日期Mydata

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+"\n"+d1+"的昨天是    "+(d2=d1.yestoday()));
 }
}

时间: 2024-11-08 10:24:24

完善例题3.2日期Mydata的相关文章

完善例题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(MyDa

第二轮冲刺-Runner站立会议03

一.会议细节 时间 2016/5/25 下午 地点 二教 二.会议记录 姓名 今天做了什么 明天要做什么 遇到的问题 李可 查询图标,优化图标 继续查询图标,优化图标 暂无 毛雯雯 查询按钮图标,尝试完善支出界面 将日期和图标尽量添加进去 暂无 张更 主要查看了一下资料,了解了android的activity直接互相传值使用getIntent(),还没有实际编程 尝试使用getIntent()实现查询和日历界面之间日期值得传递 暂无 陈昌 查看gridview与baseadapter适配器 继续

黑盒测试用例设计-判定表驱动方法

5.判定表驱动方法 前面因果图方法中已经用到了判定表.判定表是分析和表达多逻辑条件下执行不同操作的情况的工具.在程序设计中可作为编写程序的辅助工具.把复杂的逻辑关系和多种条件组合的情况表达得较明确. (1)   判定表结构 判定表通常由4部分组成,如下图所示: ·条件桩(condition stub):列出了问题的所有条件.通常认为列出的条件的次序无关. ·动作桩(action stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束. ·条件项(condition):列出针对它所列

假期周计划5.0

No.5 第五周 ①学习目标: 每天学习Java一小时  √ 所选辅导书读完  √ 编完所留例题  √ ②学习总时长: 每天看书1小时   编程1小时  解决问题时间不定 ③遇到的问题: 程序读入负号失败 包含类的顺序混淆 ④下周计划: 完善例题代码 开始写计算器代码 每日催眠,热爱Java 原文地址:https://www.cnblogs.com/zjm15511858030/p/9462045.html

js内置对象-Date-时间戳

Date构造函数:可以创建日期和对象 用来处理日期和时间 1.创建时间对象:var date = new Date()=>当前时间=====构造函数传日期字符串指定具体的日期 2.格式化时间:data.tostring() 默认的时间格式,让日期以标准化的日期字符串格式输出 data.toLocaleString()当地的时间格式 本地化日期字符串格式输出 3.getFullYear(); 获取年 getMonth();获取月 getDay();获取星期 getDate();获取日期 getHo

OK。第一个shell script 脚本

很简单吧.也很容易理解.读取两个字符放到变量firstname和lastname中,然后输出 编辑日期格式 上面是编辑日期格式.下面的例题是按照日期格式来分类创建文件 原文地址:https://www.cnblogs.com/Lonelychampion/p/11227129.html

关于Java日期的两道例题

例题1查找十天前的日期. package date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class Date01 { public static void main(String[] args) throws ParseExcept

js日期时间函数(经典+完善+实用)(转采自 :bicabo)

日期时间脚本库方法列表 Date.prototype.isLeapYear 判断闰年Date.prototype.Format 日期格式化Date.prototype.DateAdd 日期计算Date.prototype.DateDiff 比较日期差Date.prototype.toString 日期转字符串Date.prototype.toArray 日期分割为数组Date.prototype.DatePart 取日期的部分信息Date.prototype.MaxDayOfDate 取日期所在

完善类例题3.2

package mydate; public class mydate { private int year,month,day;private static int thisYear; static {thisYear=2014;}public mydate(int year,int month,int day){ this.set(year,month,day);}public mydate(){ this(1970,1,1);}public mydate(mydate d){ this.s