要求用户输入年份月份,显示当月的日历布局并且周末日期使用【】包裹,当前日期前使用“*”标记
- @author ZyKun.
ps:注释的比较齐全,一看就费
整代码了:
package com.zyk.homework01;
import java.util.Calendar;
/**
* 要求用户输入年份月份,显示当月的日历布局
* 并且周末日期使用【】包裹,当前日期前使用“*”标记
* @author ZyKun.
*
*/
public class DynamicCalendar {
public void MyCalendar(int y , int m) {
//当前系统时间为基础获取获取日历实例
Calendar c = Calendar.getInstance();
//获得今天在本月的第几天
int d = c.get(Calendar.DAY_OF_MONTH);
//修改月份跟日期(默认情况下月份0-->1月1-->2月3-->4月)
c.set(y, m-1,1);
//获取这天在星期几的位置
int day = c.get(Calendar.DAY_OF_WEEK);
//获取这个月最多多少天
int maxday =c.getActualMaximum(Calendar.DAY_OF_MONTH);
int count = 0;
System.out.println("========动态日历"+"["+y+"年"+m+"月]"+"===================By ZyKun.");
System.out.println("一 \t 二 \t 三 \t 四 \t 五 \t 六 \t 日");
System.out.println("========================================================");
//打印空格
for(int i =1; i<=(day+5)%7; i++) {
//用指标符表示
System.out.print("\t");
count++;
}
//把这个月的天数循环出来
for(int i =1; i<=maxday; i++) {
count++;
//如果计数器等于6或者7的时候在输出的日期上加上[]的字符串
if(count == 6||count == 7) {
if(i == d) {
System.out.print("*["+i+"]\t");
}else {
System.out.print("["+i+"]\t");
}
}else {
if(i == d) {
System.out.print("*"+i+"\t");
}else {
System.out.print(i+"\t");
}
}
if(count==7) {
//换行
System.out.println();
//重置count
count = 0;
}
}
}
public static void main(String[] args) {
DynamicCalendar d = new DynamicCalendar();
d.MyCalendar(2020, 11);
}
}
效果图:
ps:小白一枚,仅供参考