Java类库中GregorianCalendar类

本文介绍了Java类库中的GregorianCalendar类,该类用于表示常见的日历格式。内容包括如何打印日历、获取和设置时间,以及进行时间计算。讨论了Date类表示时间点的概念,以及与Calendar类的关系。此外,还提及了使用定时器的可能性和相关技术如Quartz。
摘要由CSDN通过智能技术生成

人类社会离不开历法。
Date 类的实例有一个状态,既定的时间点。时间是用距离一个固定时间的毫秒数表示的,这个点就是所谓的纪元–epoch,它是UTC时间1970年1月1日 00:00:00。UTC是Coordinated Universal Time的缩写,与大写熟悉的GMT-Greenwitch Mean Time/格林威治时间一样,是一种具有实际目的的科学标准时间。
类库设计者决定将保存时间与时间点命名分开。所以标准的Java类库分别包含了两个类:
一个是用来表示时间的Date类;另外一个是用来表示大家熟悉对的日历表示法GreorianCalendar类。
事实上,GreorianCalendar类扩展了一个更加通用的calendar类,这个类描述了日历的一般属性。理论上,可以通过扩展Calendar类来实现中国的阴历或者火星日历。

打印日历

package com.wht.demo;

import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;

public class CalendarTest {
   

  public static void main(String[] args) {
   
    // 设置日历的显示的地区(根据自己的需要写)
    Locale.setDefault(Locale.CHINESE);

    // GregorianCalendar是Calendar的子类
    GregorianCalendar gc = new GregorianCalendar();
    int today = gc.get(Calendar.DAY_OF_MONTH);
    int month = gc.get(Calendar.MONTH);

    // 设置月份的起始日期为1
    gc.set(Calendar.DAY_OF_MONTH, 1);

    // 获取一周中的第几天
    int weekday = gc.get(Calendar.DAY_OF_WEEK);

    // 获取一周中的第一天
    int firstDayOfWeek = gc.getFirstDayOfWeek();

    // 计算月份第一行的缩进数
    int indent = 0;// 缩进数
    while (weekday != firstDayOfWeek) {
   
      indent++;
      gc.add(Calendar.DAY_OF_MONTH, -1);// 日期减1
      weekday = gc.get(Calendar.DAY_OF_WEEK);
    }

    // 打印星期名
    String[] weekdayNames = new DateFormatSymbols().getShortWeekdays();
    do {
   
      System.out.printf("%8s", weekdayNames[weekday]);
      gc.add(Calendar.DAY_OF_MONTH, 1);
      weekday = gc.get(Calendar.DAY_OF_WEEK)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值