java常用类中Calendar【日历】

Calendar类

Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

一、构造方法
protected Calendar() :由于修饰符是protected,所以无法直接创建该对象。需要通过别的途径生成该对象。

二、成员方法

 

 

三、日历字段

 

 

 

实战例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package com.Lucky.OftenClass;
 
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
 
/*
         程序:可视化日历
         1. 将日期字符串转换成日期Date,并赋值给Calendar
         2.使用DateFormat将字符串转换成日期,然后赋值到日历calendar.setTime(date);
         3.需要知道输入的日期是星期几,前面要留空格
         4.cal.get(Calendar.DAY_OF_WEEK)
         5.如果是星期六就要输出日期之后换行
         6.cal.get(Calendar.DAY_OF_WEEK)==7
         7.需要本月一共有多少天
         8.cal.getActualMaximum(Calendar.DATE);
         9.如果是当天就添加 *
 
 */
public class VisualCalendar {
    public static void main(String[] args) {
        System.out.println("请输入日期: 格式为:2000-09-20");
        //添加扫描器
        Scanner scanner=new Scanner(System.in);
        //获取日期数据
        String nowDate=scanner.nextLine();
 
          //创建DateFormat对象
         DateFormat format=new SimpleDateFormat("yyyy-MM-dd");
 
        try {
            //将日期字符串 转换成 日期格式数据
            Date date=format.parse(nowDate);
            //创建Calendar日历对象
            Calendar calendar=new GregorianCalendar();
            //将数据设置到日历中
            calendar.setTime(date);
            //获取日历中的日
            int day=calendar.get(Calendar.DATE);
            //将日改为1号
            calendar.set(Calendar.DATE,1);
             //获取这个月的最大天数:getActualMaximum
            int MaxDate=calendar.getActualMaximum(Calendar.DATE);
 
 
            //打印日历头部
            System.out.println("日\t一\t二\t三\t四\t五\t六");
 
           //循环获取星期几【打印空格】
            for (int i = 1; i < calendar.get(Calendar.DAY_OF_WEEK); i++) {
                System.out.print("\t");
            }
 
            //循环打印数字
            for (int i = 1; i <= MaxDate; i++) {
                //判断是否是当天 [如果是就打印一个*]
                if(i==day){
                    System.out.print("*");
                }
                System.out.print(i+"\t");
 
                //获取日历上的所在星期的第几天
                int weekDay=calendar.get(Calendar.DAY_OF_WEEK);
                //判断是否是星期六[SATURDAY],如果是就打印换行
                if(weekDay==Calendar.SATURDAY){
                    System.out.println("\n");
                }
 
                //追加日期天数
                calendar.add(Calendar.DATE,1);
 
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
 
 
    }
}

  

 

posted @   唯易人生  阅读(946)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示