Java黑皮书课后题第10章:*10.14(MyDate类)设计一个名为MyDate的类
黑皮书编程练习题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的类相关推荐
- Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)
6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...
- Java黑皮书课后题第2章:2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加
2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加 题目 题目描述 运行示例 题目槽点与破题 题目槽点 破题 如何提取数字 代码块 方法评价 题目 题目描述 2.6 ...
- Java黑皮书课后题第7章:*7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目
7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目 题目 题目描述 破题 代码 运行实例 题目 题目描述 7.22(计算一个字符串中大写字母的数 ...
- Java黑皮书课后题第6章:*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数。编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数
6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数.编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数 题目 题目描述 破题 代码 运行示例 题目 ...
- Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类
Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...
- 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 ...
- Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。
Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...
- Java黑皮书课后题第1章:1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里。编写一个程序显示以每小时为多少千米为单位的平均速度值(1英里等于1.6千米)
Java黑皮书课后题第1章:1.12(以千米计的平均速度) 题目 题目描述 破题 代码块 修改日志 题目 题目描述 1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里.编写一个 ...
- Java黑皮书课后题第1章:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果
Java黑皮书课后题第1章:1.6(数列求和) 题目 题目描述 槽点 代码 代码块 区分println(x)与println("x") 法1法2选用 修改日志 题目 题目描述 1. ...
- Java黑皮书课后题第9章:**9.9(几何:正n边形)在一个正n边形中,所有边的长度都相同,且所有角的度数都相等(即这个多边形是等边等角的)
Java黑皮书课后题第9章:**9.9(几何:正n边形)在一个正n边形中,所有边的长度都相同,且所有角的度数都相等(即这个多边形是等边等角的) 题目 破题 代码 Test9 Test9_Regular ...
最新文章
- pandas新字段(数据列)生成、使用np.where或者apply lambda函数结合if else生成新的字段,详解及实战
- Spring 依赖注入的实现
- ASP 無組件上傳類
- 使用python实现微信小程序自动签到
- 最新弱口令字典,常用密码,弱密码集合
- c语言SPF算法代码,SPF 算法具体过程
- 勾股定理,西方称为毕达哥拉斯定理
- 浅谈分布式存储之SSD基本原理
- 企业微信开源系统,让开发者快速搭建基于企业微信的私域流量运营系统
- 期待台湾出现 OpenNMS Certified Partner
- Openssl-AES加密
- 网易换肤第二篇:本地换肤实现!
- 血饮龙纹、百战沙城,静默安装,卸载了以后 没几个小时就又安装到电脑了
- 2017年3月历史文章汇总
- 10分钟在服务器上搭建WordPress
- 计算机基础:(计算机的起源与发展)
- 爬取爱套图网上的图片
- 信息提取中分块或表达式
- 如何提高网站安全防护?
- Tomcat 安装与配置 win10
热门文章
- elementui进度条如何设置_vue.js+ElementUI实现进度条提示密码强度效果
- 在c语言中函数的定义变量的值为,变量定义(C语言中变量的声明和定义)
- Service Mesh 为什么从“趋势”走向“无聊”?
- 小麦助教:通过阿里云原生中间件产品组合,加速微服务架构落地
- 从 RxJS 到 Flink:如何处理数据流?
- 玩家游戏账号被封十年,解封后一进游戏傻眼了:比当年还火?
- Python编程专属骚技巧10
- 你常用的Nginx模块,用来做什么
- 配置Goldengate支持DDL
- 一位软件实施工程师的自述