August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
如何才能表示一个日期呢?当我们提出这个问题时,很多人会回答:“年、月、日,这样表示如何?”这不是唯一的答案,也不总是最好的答案,但目前对我们来说够用了,这也是我们将要采用的做法。第一个方案是一个简单的结构:
一个Date对象,比如today,由三个整型简单构成:
这个Date结构不存在任何关联的隐藏数据结构,也不能“变出戏法”——而且本章中Date的任何一个版本也都是这样。
现在已经有了表示日期的Date,我们可以对它进行什么操作呢?实际上我们能做任何操作,因为我们可以访问today(以及任何其他Date对象)的成员,并按自己的意愿读写它们。困难在于事情不是真的那么方便,我们想对一个Date对象做任何事的话,都必须通过读写其成员的方式来进行,例如:
这样编写程序冗长乏味,而且容易出错。你能看出上面代码中的错误吗?实际上,任何冗长乏味的东西都容易出错!例如,下面代码有任何意义吗?
很大可能是没有意义的,而且没有人会这么写程序。再考虑下面程序:
看起来比上一段程序有意义得多,但2000年是闰年吗?你确定吗? ...