欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

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

发布时间:2024/8/1 java 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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) + "日");} }

运行

2021821305888

UML

总结

以上是生活随笔为你收集整理的Java黑皮书课后题第10章:*10.14(MyDate类)设计一个名为MyDate的类的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。