Java用Calender类型,打印日历详解
首先我们要明白:
1.系统的每个星期的第一天是星期日
- Calendar calendar = Calendar.getInstance();返回calender抽象类的子类对象(这里用到了多态)
- 返回的weekday需要减1才是中国的星期
- 月份也是如此,我们所使用的是1-12月,但是系统是0-11月,返回时需要减1
- 计算每个月第一天是星期几,打印空格个数根据自己需要的格式打印
package com.ping.demo02.homework;
import com.sun.org.apache.xpath.internal.SourceTree;
import java.util.Calendar;
import java.util.Scanner;
public class MyTest {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Scanner sc = new Scanner(System.in);
System.out.println("请输入想要查询的月份: ");
int month = sc.nextInt();
calendar.set(2021, month - 1, 1);
System.out.println("星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日");
int weekday = calendar.get(Calendar.DAY_OF_WEEK);//系统在时间为一个星期的第五天,实际上是星期4
for (int i = 0; i < weekday -2; i++) {//打印前面三天的空格
System.out.print("\t \t");
}
for (; calendar.get(Calendar.MONTH) == month - 1;) { //从第一天开始遍历
System.out.print(" " + calendar.get(Calendar.DAY_OF_MONTH) + "\t \t");
calendar.add(Calendar.DAY_OF_MONTH, 1); //碰到周日要换行,为第一天1
if (calendar.get(Calendar.DAY_OF_WEEK ) == 2){ //但是经过加1的操作,则在2的时候换行
System.out.println();
}
}
}
}
本文详细指导如何使用Java Calendar类实现个性化日历打印,包括设置月份、计算首日星期和空格调整,适合初学者理解日期逻辑。

5217

被折叠的 条评论
为什么被折叠?



