GregorianCalendar类的应用——当前月日历打印
1 import java.text.DateFormatSymbols;
2 import java.util.Calendar;
3 import java.util.GregorianCalendar;
4 import java.util.Locale;
5
6 public class CalenderTest {
7
8 /**
9 * 本程序是打印一个当前月历的示例
10 *
11 * @Version 1.6 2009/10/7
12 * @author Eduardo
13 */
14 public static void main(String[] args) {
15 //将本地区设置为美国地区,为了输出英文星期格式
16 Locale.setDefault(Locale.US);
17 //构造一个日历对象
18 GregorianCalendar d = new GregorianCalendar();
19
20 int today =d.get(Calendar.DAY_OF_MONTH);//today为获取当前的日
21 int month=d.get(Calendar.MONTH);//month为获取当前的月
22 //将d设置为本月1号
23 d.set(Calendar.DAY_OF_MONTH,1);
24
25 int weekday=d.get(Calendar.DAY_OF_WEEK);//weekday为获取本月1号为星期几
26 //firstDayOfWeek为获取本地区的起始日
27 int firstDayOfWeek=d.getFirstDayOfWeek();
28
29 /*进行缩进,将日历对象的日减一,知道一个星期的第一天位置*/
30 int indent=0;//记录缩进几次
31 while(weekday!=firstDayOfWeek)
32 {
33 indent++;
34 d.add(Calendar.DAY_OF_MONTH, -1);//当前日期提前一天
35 weekday=d.get(Calendar.DAY_OF_WEEK);//获取当前日期为星期几
36 }
37
38 /*打印星期缩写字符串*/
39 String[] weekdayNames=new DateFormatSymbols().getShortWeekdays();//输出表示星期的方式为缩写
40 do
41 {
42 System.out.printf("%4s",weekdayNames[weekday]);
43 d.add(Calendar.DAY_OF_MONTH,1);//日期增1移动
44 weekday=d.get(Calendar.DAY_OF_WEEK);//获取当前日期为星期几
45 }
46 while(weekday!=firstDayOfWeek);
47 System.out.println();
48
49 /*本月1号前的日期补位空格*/
50 for(int i=1;i<=indent;i++)
51 System.out.print(" ");
52
53 /*进行打印日期,当日日期后用*注释,直到d进入下一个月停止打印*/
54 d.set(Calendar.DAY_OF_MONTH, 1);//将d设置为本月1号
55 do
56 {
57 int day=d.get(Calendar.DAY_OF_MONTH);
58 System.out.printf("%3d", day);
59
60 if(day==today)System.out.print("*");
61 else System.out.print(" ");
62
63 d.add(Calendar.DAY_OF_MONTH, 1);
64 weekday=d.get(Calendar.DAY_OF_WEEK);
65 if(weekday==firstDayOfWeek)System.out.println();//weekday为星期的第一天则换行打印
66 }
67 while(d.get(Calendar.MONTH)==month);
68
69 if(weekday!=firstDayOfWeek)System.out.println();
70
71 }
72
73 }
74
分享到:
相关推荐
利用GregorianCalendar类实现当月日历的打印。
当我们需要获取系统的当前时间时,`GregorianCalendar`类提供了一个方便的方法。下面将详细介绍如何使用`GregorianCalendar`来获取系统当前时间,以及相关的知识点。 首先,我们需要了解`java.util.Calendar`类。这...
Java API中的`java.util.GregorianCalendar`类是用于处理日期和时间的重要工具,它提供了丰富的功能来满足各种日历操作需求。这个类是基于格里高利历(公历)的,是Java中最常用的日期时间类之一。在给定的压缩包...
Java课程设计报告——桌面日历是一项实践项目,旨在利用Java编程语言开发一款便捷的桌面日历应用程序。这个项目的核心目标是结合NetBeans开发环境,创建一个具有记事、日期查询和日程提醒功能的个性化日历系统,以...
6. **打印日历**: - 使用循环和条件判断,代码展示了如何自定义格式打印一个月的日历。首先,它打印了星期的标题,然后根据当前日期在一周中的位置设置空格。 - 使用 `while` 循环,当日期在指定月份内时,循环会...
Java课程日历是一个实用的程序,它允许用户根据输入的日期范围来查看日历。这个程序的核心在于理解和应用日期和时间...通过使用`java.util.Calendar`或`java.time`包,我们可以实现输入不同日期范围打印日历的功能。
Java的Calendar类是用于处理日期和时间的核心类,它提供了一种机制来操作日历字段,如年、月、日、小时等。由于Calendar类是一个抽象类,不能直接实例化,我们需要通过其子类来创建对象。在Java中,最常用的是它的...
例如,对于大月(1月、3月、5月、7月、8月、10月和12月)有31天,小月(4月、6月、9月和11月)有30天,而2月的天数则取决于是否是闰年(闰年29天,平年28天)。 ```java switch(m){ case1: // 大月 // ... case2: /...
可以使用System类的currentTimeMillis()方法获取当前系统的毫秒值,然后传递给Date类的构造方法来创建一个表示当前时间的Date对象。 【Calendar类】 Calendar是Java中的一个抽象类,它是Date类的替代品,提供了更...
不过,题目也提到了“基于字符界面”,这可能是命令行界面,可以使用`System.out.println()`打印出类似Windows系统日历的布局。 在字符界面中,我们可以按照7天一行的方式输出日历,注意处理每个月的第一天和最后一...
在Java编程语言中,创建一个日历应用是...4. 打印日历的逻辑,包括处理每月的天数变化。 5. 可能的扩展功能,如显示特殊日期和事件。 通过理解和实现这些知识点,开发者可以创建出一个功能完备且灵活的日历应用程序。
`Month`类可能包含一个月的日期集合,而`Day`类则表示单个日期,并可能包括日期的特定属性,如星期几和是否为特殊日期。 3. **属性与方法**:类的属性存储数据,如当前年份、月份等。方法执行操作,如显示日历、...
Java 类的继承基础练习主要涉及面向对象编程中的一个重要概念——继承。继承允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。在这个例子中,我们看到一个继承层次,由`Person`类...
### Java中的日期处理类总结:Date、Calendar、GregorianCalendar、DateFormat、SimpleDateFormat 在Java编程中,日期时间处理是常见的需求之一。为了更好地理解和使用Java中的日期处理类,本篇文章将对Date、...
这个类是抽象的,但我们可以使用其子类`GregorianCalendar`,它是公历的具体实现。通过`Calendar`类,我们可以获取当前日期、设置特定日期、比较日期以及进行日期计算等操作。 创建日历程序的第一步通常是实例化一...
此代码中使用了 `GregorianCalendar` 来获取当前日期并进行日历的操作。 #### 2.2 设置年份和月份 - **初始化年份**: 通过下拉选择框 (`JComboBox`) 初始化了从当前年份减去 10 年到加上 20 年的选项。 - **初始化...
首先,`Calendar` 类是抽象类,我们不能直接实例化它,但可以通过其静态方法 `getInstance()` 获取一个具体的日历实例,通常是当前系统默认的日历类型(例如 GregorianCalendar 对于大多数地区): ```java ...
- 通过`GregorianCalendar`类获取当前时间的年份、月份等信息,确保了日期的准确性。 - 通过`SimpleDateFormat`类对日期进行格式化,使得输出的HTML更加美观易读。 - 设置了默认的样式和区域设置,简化了用户配置的...