java笔记 -- GregorianCalendar和DateFormateSymbols 类方法
java.util.GregorianCalendar
- new GregorianCalendar()
构造一个日历对象, 用于表示默认地区,默认时区的当前时间.
- new GregorianCalendar(int year, int month, int day),
- new GregorianCalendar(int year, int month, int day, int hour, int minutes, int seconds)
year: 该日期所在的年份
month: 该日期所在的月份,以0位基准, 0表示1月.月份可以使用常量,例如:Calendar.DECEMBER
day: 该月份中的日期
hour: 小时(0到23之间)
minutes: 分钟(0到59之间)
seconds: 秒(0到59之间)
- int get(int field) 返回给定域的值
field参数:
Calendar.ERA, Calendar.YEAR, Calendar.MONTH, Calendar.WEEK_OF_YEAR, Calendar.WEEK_OF_MONTH,
Calendar.DAY_OF_YEAR, Calendar.DAY_OF_MONTH, Calendar.DAY_OF_WEEK, Calendar.DAY_OF_WEEK_IN_MONTH,
Calendar.AM_PM, Calendar.HOUR, Calendar.HOUR_OF_DAY, Calendar.MINUTE, Calendar.SECOND,
Calendar.MILLISECOND, Calendar.ZONE_OFFSET, Calendar.DST_OFFSET
- void set(int field, int value) 设置特定域的值
field参数: 参照get方法
value: 新值
- void set(int year, int month, int day),
- void set(int year, int month, int day, int hour, int minutes, int seconds)
将日期域与时间域设置为新值
- void add(int field, int amount) 对给定的时间域增加指定数量的时间.可以为负数.
field参数: 参照get方法
amount: 域被改变的数量
- int getFirstDayOfWeek
方法获取当前地区星期的起始日期(美国的星期第一天是Calendar.SUNDAY, 欧洲每个星期的第一天是星期一, 最后一天是星期日).
- void setTime(Date time)
将日历设置为指定时间点
- void getTime()
获得这个日历对象当前值所表达的时间点.
java.text.DateFormateSymbols
- String[] getShortWeekdays()
- String[] getShortMonths()
- String[] getWeekdays()
- String[] getMonths()
获取当前地区的星期几或月份的名称(数组).利用Calendar的星期和月份常量作为数组的索引值.
// CalendarTest .java
public class CalendarTest {
public static void main(String[] args) {
// 构造一个当前日期对象
GregorianCalendar d = new GregorianCalendar();
int today = d.get(Calendar.DAY_OF_MONTH);
int month = d.get(Calendar.MONTH);
// System.out.println("today: " + today);
// System.out.println("month: " + month);
// 设置时间为本月开始日期
d.set(Calendar.DAY_OF_MONTH, 1);
// 本月第一天是星期几, 2018/09, 此weekday为7,周六
int weekday = d.get(Calendar.DAY_OF_WEEK);
// System.out.println("weekday: " + weekday);
// 得到当地星期的起始日
int firstDayOfWeek = d.getFirstDayOfWeek(); // 1是周日??
// System.out.println("firstDayOfWeek: " + firstDayOfWeek);
int indent = 0;
while (weekday != firstDayOfWeek) {
indent++;
// 将日期对象减1, 直到一个星期的第一天为止
d.add(Calendar.DAY_OF_MONTH, -1);
weekday = d.get(Calendar.DAY_OF_WEEK);
// System.out.println("weekday"+ indent + ": " + weekday);
}
String[] weekdayNames = new DateFormatSymbols().getShortWeekdays();
// System.out.println("weekdayNames: " + Arrays.toString(weekdayNames));
// weekdayNames: [, 星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
do {
System.out.printf("%4s", weekdayNames[weekday]); // 在weekdayNames数组中取值.
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);
}
while (weekday != firstDayOfWeek); // 满足此条件就继续.
System.out.println();
for (int i = 1; i<= indent; i++)
System.out.print(" "); // 打印缩进位置
d.set(Calendar.DAY_OF_MONTH, 1);
do {
// 开始打印日期
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d", day);
// 当前日期后面打印*
if (day == today) System.out.print("*");
else System.out.print(" ");
// 打印日期, 每到一个当地星期其实日, 则换行
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);
// 此处容易混的是: 上面已经先打印出了符合周六的日期, 然后+1天,判断相等之后才会进入下一个循环继续打印周日(起始日),所以是没有问题的.
if (weekday == firstDayOfWeek) System.out.println();
}
while (d.get(Calendar.MONTH) == month);
// 打印尾行线(如果需要)
if (weekday !=firstDayOfWeek) System.out.println();
}
}
java笔记 -- GregorianCalendar和DateFormateSymbols 类方法的更多相关文章
- java笔记整理
Java 笔记整理 包含内容 Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...
- 《Java笔记——基础知识点》
Java笔记--基础知识点 位运算符操作的都是整型的数据. 位运算符是直接对整数的二进制进行计算. 整数不能进行逻辑运算. 运算符优先级别由高到低分别是:() > ! > 算术 ...
- Effective Java笔记一 创建和销毁对象
Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...
- java笔记00-目录
--2013年7月26日17:49:59 学习java已久,趁最近有空,写一个总结: java笔记01-反射:
- java笔记 -- 类与对象
封装: 从形式上看, 封装是将数据和行为组合在一个包中, 并对对象的使用者隐藏了数据的实现方式. 对象中的数据称为实例域, 操纵数据的过程称为方法. 对于每个特定的类实例(对象)都有一组特定的实例域值 ...
- 转 Java笔记:Java内存模型
Java笔记:Java内存模型 2014.04.09 | Comments 1. 基本概念 <深入理解Java内存模型>详细讲解了java的内存模型,这里对其中的一些基本概念做个简单的笔记 ...
- servlet(6) - servlet总结 - 小易Java笔记
垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...
- Java笔记 —— 继承
Java笔记 -- 继承 h2{ color: #4ABCDE; } a{ text-decoration: none!important; } a:hover{ color: red !import ...
- Java笔记 —— 方法重载和方法重写
Java笔记 -- 方法重载和方法重写 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red ...
随机推荐
- [No0000186]治愈系课程教材 第一课
一部分:时态 时态有时间和特点组成 时间:现在.过去.将来 特点:一般.完成.进行.完成进行 所以时态总共有12种(加上过去将来的时间又多出4种时态,总共16种) 一般现在时 一般过去时 一般将来时 ...
- 使用FreeMarker生成word文档
生成word文档的框架比较多,比如poi,java2word,itext和freemarker. 调研之后,freemarker来实现挺简单的,具体步骤如下: 1. 新建word文档,占位符用${}, ...
- pandas 2
============== sdf={'rkey':[1,2,3,2],'name':['rkey1','rkey2','rkey3','rkey4']}sdf2={'lkey':[1,2,3],' ...
- webpack介绍 安装 常用命令
Webpack是一款用户打包前端模块的工具,它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑 ...
- oracle日期格式化
TO_CHAR(t.CAMERA_CREAT_TIME, 'YYYY-MM-DD HH24:MI:SS') as point_registerdate,TO_CHAR(t.CAMERA_MODIFY_ ...
- 在centos7下安装python3的步骤
环境搭建 准备工具: centos7:http://mirror.bit.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso virtus ...
- python摸爬滚打之day17----类与类之间的关系
1.类与类之间的联系 1.1 依赖关系 类A中使用了类B, 类B作为参数传进类A的方法中被使用. 这种关系中类与类之间的联系是最轻的. class Elephant: def open(self,e ...
- Spring 学习教程(一):浅谈对Spring IOC以及DI的理解
一.个人对IoC(控制反转)和DI(依赖注入)的理解我们平时在开发java web程序的时候,每个对象在需要使用它的合作对象时,自己都要将它要合作对象创建出来(比如 new 对象),这个合作对象是由自 ...
- 访问GitLab的PostgreSQL数据库,查询、修改、替换等操作
1.登陆gitlab的安装服务查看配置文件 cat /var/opt/gitlab/gitlab-rails/etc/database.yml production: adapter: postgre ...
- Python---http协议.md
一.什么是URL? URL即统一资源定位符(Uniform Resource Locator),用来唯一地标识万维网中的某一个文档.URL由协议.主机和端口(默认为80)以及文件名三部分构成,如: h ...