java 打印 日历 详细 注解_Java类库 LocalDate类的简单使用(一)之打印本月的日历...
Java类库的设计者将保存时间与给时间点命名分开。所以标准Java类库分别包含了两个类:一个是用来表示时间点的Date类;另一个是用来表示日历表示法的LocalDate类。这里简单分析了LocalDate类的使用,即打印一个本月的日历表。熟悉java类库的一些基本操作,以及锻炼程序的设计思路。
首先,这里不能使用构造器来构造LocalDate类的对象,应当使用静态工厂方法代表你调用构造器,并保存在一个对象变量中。
LocalDate的对象实例化
一旦有了一个LocalDate对象,可以用方法getYear、getMonthValue和getDayOfMonth得到年、月和日。
LocalDate的一些方法
看起来这似乎没有多大的意义。因为这正是构造对象时使用的那些值。不过,有时可能某个日期是计算得到的,你希望调用这些方法得到更多信息。例如,plusDays方法会得到一个新的LocalDate对象
plusDays的用法
好,现在就上全部的代码和结果。
全部示例代码
运行结果打印
设计思路是这样的,先获取当前时间,并把当前时间的月和日,保存在month和today变量里。
month和today
然后再找到这个月的第一天。其中,minusDays(LocalDate minusDays(int n))这个方法的意思是,生成当前日期之后或之前的n天,n为正数时,是前n天。这里假设today是2,那么today-1就是1,所以是2号的前1天,也就是1号,为本月的第一天。
date为本月的第一天
得到本月的第一天的作用是为了得到第一天是星期几,这里使用一个了DayOfWeek类型(内部使用的是enum类型表示的星期一到星期日)的变量保存是星期几。我们调用date这个对象的getValue方法来得到星期几的一个数值。这会用到一个整数,按照惯例,周末是一周的末尾,星期一返回1,星期二返回2,依此类推,星期日则返回7。
得到是星期几
由于日历的第一行是缩进的,使得月份的第一天指向相应的星期几。
打印星期目录
打印好第一行并缩进后,开始依次打印对应的号数了。每打印一天就加一天(plusDays(1)),生成的新对象重新引用给date。如果打印到today,使用*号标记。打印到星期天时,需要换行。
开始打印
预打印下一个月份。
换行准备下一个月份
java 打印 日历 详细 注解_Java类库 LocalDate类的简单使用(一)之打印本月的日历...相关推荐
- java 打印 日历 详细 注解_java 打印日历
package com.beiwo.other; /* * 需求:输入一个年份和月份 ,显示当前月日情况 ,星期数要对应准确 * 1.1900年1月1号开始 * 2.星期 : 直接用总天数对7求余数 ...
- java运行时读取注解_Java自定义注解和运行时靠反射获取注解
转:1.Annotation的工作原理: JDK5.0中提供了注解的功能,允许开发者定义和使用自己的注解类型.该功能由一个定义注解类型的语法和描述一个注解声明的语法,读取注解的API,一个使用注解修饰 ...
- java扫描指定package注解_java随笔-扫描使用指定注解的类与方法
前几天项目中让扫描出所有使用Restful API的方法.刚开始还想着用python过滤关键字来查找的,后来想想可以使用反射来搞的.主要包含以下三个步骤: 根据包名解析包的具体路径 查找指定包下指定注 ...
- java常用的集合对象_java常用实体类、集合类
java常用实体类.集合类 [转自51cto博客jichangwei的BLOG] 1:String类,字符串是常量,他们的值在创建之后不能更改,可以共享. equals()用来比较两个字符串的值,== ...
- java class对象创建时机_Java面向对象编程-类的声明周期
第十章 类的生命周期 10.1 Java虚拟机及程序的生命周期 当通过java命令运行一个Java程序时,就启动了一个Java虚拟机进程.Java虚拟机进程从启动到终止的过程,称为Java虚拟机的生命 ...
- java color类 蓝色_java中Color类的简单总结
标签: java中Color类的简单总结 1.颜色的常识 任何颜色都是由三原色组成(RGB),JAVA中支持224为彩色,即红绿蓝分量取值 介于0-255之间(8位表示) 2.Color类中的常量 p ...
- java枚举类型季节实例_Java之枚举类
目录 一.为何引入枚举类型(为了替代魔法值) 什么是魔法值?魔法值有哪些隐患,见另一篇文章编码规约之使用Enum枚举类替代魔法值 那么为什么不用静态变量来替换魔法值呢? 有时候,变量的取值只在一个有限 ...
- Java生成和解析二维码工具类(简单经典)
Java生成和解析二维码工具类 开箱即用,简单不废话. pom.xml引入依赖 <!-- https://mvnrepository.com/artifact/com.google.zxing/ ...
- java和以太坊交互_java类库web3j开发以太坊智能合约快速入门
web3j简介 web3j是一个轻量级.高度模块化.响应式.类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成. 可以通过它进行以太坊 ...
最新文章
- Python学习笔记3 流程控制、迭代器、生成器
- vue手机端回退_推荐3个快速开发平台 前后端都有 接私活又有着落了
- python 源码安装教程_python安装步骤
- 企业即时通讯规模将达7亿
- HDU 4540 威威猫系列故事——打地鼠(DP)
- [CQOI 2018]社交网络
- 中医药古文献语料库设计与开发研究
- 黑客是怎么攻击网站的(网站渗透入侵全部教程)
- PTA病毒序列C语言
- 【干货】从QQ群起家的情趣商城站长之路
- 计算机网络嗅探实验,网络嗅探与欺骗实验
- 百度地图 地图级别 是什么意思
- 蓝桥杯真题(路径)C语言
- 定时/计数器的原理和应用
- 网络游戏软件销售渠道模式举例及分析
- unity将 \u4E00 这种 编码 转汉字 方法
- BTC反弹上攻失效 回踩重点关11000
- 《GitHub入门与实践》读书笔记
- xlsx.js 实现前端 table 数据导出并下载为 excel
- android相机分辨率是多少,Android相机套装分辨率