完善例题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(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-10-24 06:20:06

完善例题3.2的相关文章

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

假期周计划5.0

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

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

【例题收藏】◇例题&#183;I◇ Snuke&#39;s Subway Trip

◇例题·I◇ Snuke's Subway Trip 题目来源:Atcoder Regular 061 E题(beta版) +传送门+ 一.解析 (1)最短路实现 由于在同一家公司的铁路上移动是不花费的,只有在换乘时会花费1日元.我们可以视换乘的花费为点权--当换乘到不同公司时花费1,同一家公司时花费0. 对于这种点权因情况而变化的题,最常见的做法便是拆点.设节点 u 相连的铁路由 c1,c2,...,cp p个公司修建,则将节点u拆分为节点 uc1~ucp,点uci表示到达点u的铁路是由公司c

【例题收藏】◇例题&#183;6◇ 电压机制(voltage)

◆例题·6◆ 电压机制 周六日常模拟赛……已经不知道该说什么了(感觉做不出来的都是好题) ? 题目 (终于不用自己翻译英文题了╮(╯-╰)╭) [问题描述] 科学家在“无限神机”(Infinity Machine)找到一个奇怪的机制,这个机制有N个元件,有M条电线连接这些元件,所有元件都是连通的.两个元件之间可能有多条电线连接. 科学家对这些元件可以任意地设置为“高电压”和“低电压”两种模式,如果一条电线的一端为高电压,另一端为低电压,这条电线就会产生电流. 为了安全的研究“无限神机”,科学家需

让win7变成无线路由(需要用管理员权限打开)最后完善.rar

让win7变成无线路由(需要用管理员权限打开)最后完善.bat @ECHO OFF CLS color 0a netsh wlan show drivers ECHO.★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ECHO.★以上是你的无线网卡信息,查看你的网卡是否支持承载网络★ ECHO.★ ★ ECHO.★ 持请更新一个通过微软认证的驱动! ★ ECHO.★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ECHO. ECHO. GOTO MENU :MENU ECHO.

acm常见算法及例题

转自:http://blog.csdn.net/hengjie2009/article/details/7540135 acm常见算法及例题 初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法

浪潮存储:2015年发力高端 完善产品线布局

国内存储市场在过去多年都是国际品牌的天下,本土厂商一直处于市场竞争的弱势.近年来,随着本土品牌厂商在技术研发上的持续投入与积累,本土厂商开始崛起,逐渐在存储市场打开局面,正稳步成长为可以与国际品牌厂商叫板的一股力量.近日,浪潮存储对外宣布其2015年存储战略规划,直言2015年将会是浪潮存储改变的一年,结合以数据为核心,重点将会发力高端存储领域,并且会逐步完善存储产品线布局. 发力高端存储市场 一直以来,国内高端存储市场都是EMC.HDS以及IBM等国际厂商在唱主角,这些厂商凭借着多年的产品技术

黑书例题 Fight Club 区间DP

题目可以在bnuoj.soj等OJ上找到. 题意: 不超过40个人站成一圈,只能和两边的人对战.给出任意两人对战的输赢,对于每一个人,输出是否可能是最后的胜者. 分析: 首先序列扩展成2倍,破环成链. dp[i][j]表示i和j能够相遇对打,那么dp[i][i+n]为真代表可以成为最后胜者. 枚举中间的k,若i和j都能和k相遇,且i和j至少一人能打赢k,那么i和j可以相遇. 复杂度o(n^3) 1 #include<cstdio> 2 #include<cstring> 3 usi