文章标题:java基础课程学习日记(二)之日期问题
来源:互联网 发布:司考民法谁讲得好 知乎 编辑:程序博客网 时间:2024/05/17 01:11
标准JAVA类库分别包含了两个类:一个使用来表示时间的Date类;另一格式用来表示大家所熟悉的日历表示法的GregorianCalendar类。实际上,GregorianCalendar类扩展了一个更加通用的Calendar类,这个类描述了日历的一般属性。(Date类所包含的方法没有GregorianCanlendar类的多,且其方法多不推荐使用,Date类不知道如何操作日历,所以要对日历信息获取与修改需先构造一个GergorianCalendar对象,然后再调用getTime或setTime(),故不做了解)
GregorianCalendar();
构造一个日历对象,用来表示默认地区,默认时区的当前时间。
**GregorianCalendar(int year , int morth, int day)
GregorianCalendar(int year , int morth, int day, int hour, int minutes, int seconds)**
用给定的日期和时间构造一个Gregorian日历对象
主要的方法:
int get(int field)
返回给定的值
void set(int field, int value)
设置特定域的值
field 为想要改变的属性
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)
这是一个可以对日期信息实施算术运算的方法。对给定的时间域增加指定数量的时间。
例如:c.add(Calendar.DAY_OF_MONTH,7),将当前的日历日期加上7.
field : 需要修改的域
amount : 域被改变的数量(可以为负值)
int getFirstDayOfWeek()
获取当前用户所在地区,一个星期中的一天
void setTime(Date time)
将日历设置为指定的时间点
Date getTime()
获得这个日历对象当前值所表达的时间点。
String[] getShortWeekdays()
String[] getShortMonths()
String[] getWeekdays()
String[] getMonths()
获得当前地区的星期几或月份的名称。利用Calendar的星期和月份常量作为数组索引值。
//显示当前月的日历package cn.xiaomi;import java.text.DateFormatSymbols;import java.util.*;public class CalendarTest { public static void main(String[] args) { // TODO Auto-generated method stub //construct d as current date //创建当前时间对象 GregorianCalendar d = new GregorianCalendar(); //获取当前月份与日期 int today = d.get(Calendar.DAY_OF_MONTH); int month = d.get(Calendar.MONTH); //SET d to start date of the month d.set(Calendar.DAY_OF_MONTH,1); //获取当前月1号的星期为后面该留出多少位置做准备(例如日历的星期从星期日开始,而当前月的1号为星期三则应留出三个位置) int weekday = d.get(Calendar.DAY_OF_WEEK); //get first day of week (Sunday in the U.S.) //getFirstDayOfWeek()方法获取当前地区星期的起始日 int firstDayOfWeek = d.getFirstDayOfWeek(); //determine the required indentation for the first line int indent = 0; while(weekday != firstDayOfWeek){ indent++; //当前月的日期减1(假如现在是5月,即5.1星期三,减一为4.28星期二,经过不断循环,当日期减至4.26星期日时为最后一次跳出循环) d.add(Calendar.DAY_OF_MONTH, -1); weekday = d.get(Calendar.DAY_OF_WEEK); } //print all weekday names(有序的输出从星期日至星期六简写) String[] weekdayNames = new DateFormatSymbols().getShortWeekdays(); do{ System.out.printf("%4s",weekdayNames[weekday]); 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{ //print day int day = d.get(Calendar.DAY_OF_MONTH); System.out.printf("%3d",day); //mark current day with * if(day == today) System.out.print("*"); else System.out.print(" "); //advance d to the nextday d.add(Calendar.DAY_OF_MONTH, 1); weekday = d.get(Calendar.DAY_OF_WEEK); //start a new line at the start of the week if(weekday == firstDayOfWeek) System.out.println(); } while (d.get(Calendar.MONTH) == month); //the loop exist when d is day 1 of the next month //print final end of line if necessary if(weekday != firstDayOfWeek) System.out.println(); }}![运行结果:](http://img.blog.csdn.net/20160823171050210)
日历果然要用列表才可以做得更好。
- 文章标题:java基础课程学习日记(二)之日期问题
- 文章标题:java基础课程学习日记(一)可变参数列表
- Java学习日记(3)--基础归类二
- 黑马程序员学习日记 (二)java语言基础
- 学习Java基础课程
- 排版学习之二:标题(二)
- Java 基础学习日记
- Java学习:coursera课程笔记(二)
- javaee学习日记之java基础之初识java
- 黑马培训前期java基础加强学习日记二
- 吴恩达神经网络和深度学习课程自学笔记(二)之神经网络基础
- 学习java之基础二
- 日记----工作学习之路(二)
- 黑马程序员 自学日记(二) java基础 二
- 黑马程序员--学习日记(九)高新部分java基础加强(二)
- javaee学习日记之java基础之集合类
- javaee学习日记之java基础之异常
- javaee学习日记之java基础之I/O流
- 基于spring MVC 的验证码生成
- 怎么在一串长字符串中找出出现最多次数的字符?
- thinkphp 输出变量使用函数处理
- 思维工具:MindNode
- Android提醒技巧,Dialog、Toast和Snackbar的使用区别
- 文章标题:java基础课程学习日记(二)之日期问题
- uboot启动阶段修改启动参数方法及分析
- iOS CoreAnimation(1)-图层树
- 关于js去除字符串中的空格问题
- 音视频知识点收集
- 随机产生数
- IT类最舒适的10大职位,你同意吗?
- 【java基础】BigDecimal 精度控制
- Hello World.