黑皮书编程练习题10.14

  • 题目
    • 程序
  • 代码
    • Test14.java
    • Test14_MyDate.java
    • Test5.java
    • 运行
  • UML

题目


补:讨论的GregorianCalendar类来简化编程

程序

Test14.java:测试程序
Test14_MyDate.java:构造程序
Test5:参考程序(编程练习题9.5)

代码

Test14.java

public class Test14 {public static void main(String[] args) {Test14_MyDate date0 = new Test14_MyDate();Test14_MyDate date1 = new Test14_MyDate(34355555133101L);System.out.println(date0.year + "年" + date0.month + "月" + date0.day + "日");System.out.println(date1.year + "年" + date1.month + "月" + date1.day + "日");}
}

Test14_MyDate.java

import java.util.GregorianCalendar;public class Test14_MyDate {int year, month, day;   // 月从0开始public Test14_MyDate(){GregorianCalendar gc = new GregorianCalendar();year = gc.get(GregorianCalendar.YEAR);month = gc.get(GregorianCalendar.MONTH);day = gc.get(GregorianCalendar.DAY_OF_MONTH);}public Test14_MyDate(long l){GregorianCalendar gc = new GregorianCalendar();gc.setTimeInMillis(l);year = gc.get(GregorianCalendar.YEAR);month = gc.get(GregorianCalendar.MONTH);day = gc.get(GregorianCalendar.DAY_OF_MONTH);}public Test14_MyDate(int year, int month, int day){this.year = year;this.month = month;this.day = day;}public void setDate(long elapsedTime){GregorianCalendar gc = new GregorianCalendar();gc.setTimeInMillis(elapsedTime + toCalender(year, month, day));year = gc.get(GregorianCalendar.YEAR);month = gc.get(GregorianCalendar.MONTH);day = gc.get(GregorianCalendar.DAY_OF_MONTH);}public long toCalender(int year, int month, int day){day += year * 365;switch (month){case 11: day += 31;case 10: day += 30;case 9: day += 31;case 8: day += 30;case 7: day += 31;case 6: day += 31;case 5: day += 30;case 4: day += 31;case 3: day += 30;case 2: day += 31;case 1: day += 28;}return (long) day * 24 * 60 * 60 * 1000;}
}

Test5.java

import java.util.GregorianCalendar;public class Test5 {public static void main(String[] args) {GregorianCalendar gc = new GregorianCalendar();System.out.print(gc.get(GregorianCalendar.YEAR) + "年");System.out.print(gc.get(GregorianCalendar.MONTH) + "月");System.out.println(gc.get(GregorianCalendar.DAY_OF_MONTH) + "日");gc.setTimeInMillis(1234567898765L);System.out.print(gc.get(GregorianCalendar.YEAR) + "年");System.out.print(gc.get(GregorianCalendar.MONTH) + "月");System.out.print(gc.get(GregorianCalendar.DAY_OF_MONTH) + "日");}
}

运行

2021年8月21日
3058年8月8日

UML

Java黑皮书课后题第10章:*10.14(MyDate类)设计一个名为MyDate的类相关推荐

  1. Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)

    6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...

  2. Java黑皮书课后题第2章:2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加

    2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加 题目 题目描述 运行示例 题目槽点与破题 题目槽点 破题 如何提取数字 代码块 方法评价 题目 题目描述 2.6 ...

  3. Java黑皮书课后题第7章:*7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目

    7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目 题目 题目描述 破题 代码 运行实例 题目 题目描述 7.22(计算一个字符串中大写字母的数 ...

  4. Java黑皮书课后题第6章:*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数。编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数

    6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数.编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数 题目 题目描述 破题 代码 运行示例 题目 ...

  5. Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类

    Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...

  6. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  7. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  8. Java黑皮书课后题第1章:1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里。编写一个程序显示以每小时为多少千米为单位的平均速度值(1英里等于1.6千米)

    Java黑皮书课后题第1章:1.12(以千米计的平均速度) 题目 题目描述 破题 代码块 修改日志 题目 题目描述 1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里.编写一个 ...

  9. Java黑皮书课后题第1章:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果

    Java黑皮书课后题第1章:1.6(数列求和) 题目 题目描述 槽点 代码 代码块 区分println(x)与println("x") 法1法2选用 修改日志 题目 题目描述 1. ...

  10. Java黑皮书课后题第9章:**9.9(几何:正n边形)在一个正n边形中,所有边的长度都相同,且所有角的度数都相等(即这个多边形是等边等角的)

    Java黑皮书课后题第9章:**9.9(几何:正n边形)在一个正n边形中,所有边的长度都相同,且所有角的度数都相等(即这个多边形是等边等角的) 题目 破题 代码 Test9 Test9_Regular ...

最新文章

  1. pandas新字段(数据列)生成、使用np.where或者apply lambda函数结合if else生成新的字段,详解及实战
  2. Spring 依赖注入的实现
  3. ASP 無組件上傳類
  4. 使用python实现微信小程序自动签到
  5. 最新弱口令字典,常用密码,弱密码集合
  6. c语言SPF算法代码,SPF 算法具体过程
  7. 勾股定理,西方称为毕达哥拉斯定理
  8. 浅谈分布式存储之SSD基本原理
  9. 企业微信开源系统,让开发者快速搭建基于企业微信的私域流量运营系统
  10. 期待台湾出现 OpenNMS Certified Partner
  11. Openssl-AES加密
  12. 网易换肤第二篇:本地换肤实现!
  13. 血饮龙纹、百战沙城,静默安装,卸载了以后 没几个小时就又安装到电脑了
  14. 2017年3月历史文章汇总
  15. 10分钟在服务器上搭建WordPress
  16. 计算机基础:(计算机的起源与发展)
  17. 爬取爱套图网上的图片
  18. 信息提取中分块或表达式
  19. 如何提高网站安全防护?
  20. Tomcat 安装与配置 win10

热门文章

  1. elementui进度条如何设置_vue.js+ElementUI实现进度条提示密码强度效果
  2. 在c语言中函数的定义变量的值为,变量定义(C语言中变量的声明和定义)
  3. Service Mesh 为什么从“趋势”走向“无聊”?
  4. 小麦助教:通过阿里云原生中间件产品组合,加速微服务架构落地
  5. 从 RxJS 到 Flink:如何处理数据流?
  6. 玩家游戏账号被封十年,解封后一进游戏傻眼了:比当年还火?
  7. Python编程专属骚技巧10
  8. 你常用的Nginx模块,用来做什么
  9. 配置Goldengate支持DDL
  10. 一位软件实施工程师的自述