java 打印 日历 详细 注解_Java类库 LocalDate类的简单使用(一)之打印本月的日历...

Java类库的设计者将保存时间与给时间点命名分开。所以标准Java类库分别包含了两个类:一个是用来表示时间点的Date类;另一个是用来表示日历表示法的LocalDate类。这里简单分析了LocalDate类的使用,即打印一个本月的日历表。熟悉java类库的一些基本操作,以及锻炼程序的设计思路。

首先,这里不能使用构造器来构造LocalDate类的对象,应当使用静态工厂方法代表你调用构造器,并保存在一个对象变量中。

95a1d164eeff

LocalDate的对象实例化

一旦有了一个LocalDate对象,可以用方法getYear、getMonthValue和getDayOfMonth得到年、月和日。

95a1d164eeff

LocalDate的一些方法

看起来这似乎没有多大的意义。因为这正是构造对象时使用的那些值。不过,有时可能某个日期是计算得到的,你希望调用这些方法得到更多信息。例如,plusDays方法会得到一个新的LocalDate对象

95a1d164eeff

plusDays的用法

好,现在就上全部的代码和结果。

95a1d164eeff

全部示例代码

95a1d164eeff

运行结果打印

设计思路是这样的,先获取当前时间,并把当前时间的月和日,保存在month和today变量里。

95a1d164eeff

month和today

然后再找到这个月的第一天。其中,minusDays(LocalDate minusDays(int n))这个方法的意思是,生成当前日期之后或之前的n天,n为正数时,是前n天。这里假设today是2,那么today-1就是1,所以是2号的前1天,也就是1号,为本月的第一天。

95a1d164eeff

date为本月的第一天

得到本月的第一天的作用是为了得到第一天是星期几,这里使用一个了DayOfWeek类型(内部使用的是enum类型表示的星期一到星期日)的变量保存是星期几。我们调用date这个对象的getValue方法来得到星期几的一个数值。这会用到一个整数,按照惯例,周末是一周的末尾,星期一返回1,星期二返回2,依此类推,星期日则返回7。

95a1d164eeff

得到是星期几

由于日历的第一行是缩进的,使得月份的第一天指向相应的星期几。

95a1d164eeff

打印星期目录

打印好第一行并缩进后,开始依次打印对应的号数了。每打印一天就加一天(plusDays(1)),生成的新对象重新引用给date。如果打印到today,使用*号标记。打印到星期天时,需要换行。

95a1d164eeff

开始打印

预打印下一个月份。

95a1d164eeff

换行准备下一个月份

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值