文档详情

GregorianCalendar类的学习

碎****木
实名认证
店铺
DOCX
13.45KB
约6页
文档ID:288557222
GregorianCalendar类的学习_第1页
1/6

GregorianCalendar类的学习GregorianCalendar 是一种混合日历,在单一连续性的支持下同时支持儒略历和格里高利历系统,在默认状况下,它对应格里高利日历创立时的格里高利历日期(某些国家/地区是在 1582 年 10 月 15 日创立,在其他国家/地区要晚一些)可由调用者通过调用 setGregorianChange() 来更改起始日期  历,在那些首先采纳格里高利历的国家/地区中,1582 年 10 月 4 日(儒略历)之后就是 1582 年 10 月 15 日(格里高利历)此日历正确地模拟了这些变化在开头格里高利历之前,GregorianCalendar 实现的是儒略历格里高利历和儒略历之间的区分就是闰年规章儒略历指定每 4 年就为闰年,而格里高利历则忽视不能被 400 整除的世纪年  GregorianCalendar 可实现预期的 格里高利历和儒略历考试大提示: 也就是说,可以通过在时间上无限地向后或向前外推当前规章来计算日期因此,对于全部的年份,都可以使用 GregorianCalendar 来生成有意义并且全都的结果。

但是,采纳现代儒略历规章时,使用 GregorianCalendar 得到的日期只在历从公元 4 年 3 月 1 日之后是精确的在此日期之前,闰年规章的应用没有规章性,在 45 BC 之前,甚至不存在儒略历  在格里高利历创立以前,新年是 3 月 25 日为了避开混淆,此日历始终使用 1 月 1 日为新年假如想要格里高利历转换之前并且处于 1 月 1 日和 3 月 24 日之间的日期,则可以进展手动调整  为 WEEK_OF_YEAR 字段所计算的值的范围从 1 到 53一年的第一个星期始于 getFirstDayOfWeek() 的最早 7 天,至少包含该年的 getMinimalDaysInFirstWeek() 各天这取决于 getMinimalDaysInFirstWeek()、getFirstDayOfWeek() 的值以及 1 月 1 日是星期几一年的第一个星期和下一年的第一个星期之间的各个星期按挨次从 2 到 52 或 53(依据需要)进展编号  例如,1998 年 1 月 1 日是星期四假如 getFirstDayOfWeek() 为 MONDAY,并且 getMinimalDaysInFirstWeek() 为 4(这些值反映了 ISO 8601 和许多国家/地区标准),则 1998 年的第一个星期开头于 1997 年 12 月 29 日,完毕于 1998 年 1 月 4 日。

但是,考试大提示: 假如 getFirstDayOfWeek() 为 SUNDAY,那么 1998 年的第一个星期开头于 1998 年 1 月 4 日,完毕于 1998 年 1 月 10 日;1998 年头三天是 1997 年第 53 个星期的一局部  为 WEEK_OF_MONTH 字段所计算的值的范围从 0 到 6一个月的第一个星期(WEEK_OF_MONTH = 1 的日期)是该月至少连续 getMinimalDaysInFirstWeek() 天中的最早日期,完毕于 getFirstDayOfWeek() 的前一天与一年的第一个星期不同,Examda,一个月的第一个星期可能短于 7 天,也不必从 getFirstDayOfWeek() 这一天开头,并且不包括前一个月的日期在第一个星期之前该月日期的 WEEK_OF_MONTH 为 0  例如,假如 getFirstDayOfWeek() 为 SUNDAY,getMinimalDaysInFirstWeek() 为 4,那么 1998 年 1 月的第一个星期是从 1 月 4 日星期日到 1 月 10 日星期六这些天的 WEEK_OF_MONTH 为 1。

1 月 1 日星期四到 1 月 3 日星期六的 WEEK_OF_MONTH 为 0假如 getMinimalDaysInFirstWeek() 变为 3,则 1 月 1 日到 1 月 3 日的 WEEK_OF_MONTH 为 1  simple Demo  import java.util.*;  public class GregorianCalendarTest  {  public static void main(String[] args) {  //构造当前日期的日期对象  GregorianCalendar date = new GregorianCalendar();  //获得当前日期的日  int today = date.get(Calendar.DAY_OF_MONTH);  //获得当前日期的月份  int month = date.get(Calendar.MONTH);  //更改当前日期的日为当月的第一天  date.set(Calendar.DAY_OF_MONTH, 1);  //获得当前为星期几(1-星期天)  int weekDay = date.get(Calendar.DAY_OF_WEEK);  //打印日历头  System.out.println(“Sun Mon Tue Wed Thu Fri Sat“);  for (int i = Calendar.SUNDAY; i < weekDay; i++)  {  System.out.print(“ “);  }  //循环打印每天  do  {  //获得当前号  int day = date.get(Calendar.DAY_OF_MONTH);  System.out.printf(“%3d“, day);  //是否当天的号  if (day == today)  {  System.out.print(“*“);  }else {  System.out.print(“ “);  }  //星期六换行  if (weekDay == Calendar.SATURDAY)  {  System.out.println();  }  //下一天  date.add(Calendar.DAY_OF_MONTH, 1);  //下一天为星期几  weekDay = date.get(Calendar.DAY_OF_WEEK);  }  while (date.get(Calendar.MONTH) == month);  //最终的换行  if (weekDay != Calendar.SUNDAY)  {  System.out.println();  }  }  }。

下载提示
相似文档
正为您匹配相似的精品文档