package com.yb2;
import javax.swing.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
/**
* @Auther: YB
* @Date: 2021/12/13 - 12 - 13 - 18:38
* @Description: com.yb2
*/
public class Test1 {
public static void main(String[] args) {
//拿一个扫描器
Scanner sc=new Scanner(System.in);
//给个提示
System.out.println("请输入你要查看的日期:(提示:请按照 1997-12-13 的格式录入)");
//录入一个字符串
String date1=sc.next(); //2020-12-13
//将String -->转化为Calender
//先将String 转化为sql
java.sql.Date date2=java.sql.Date.valueOf(date1);// 用到valueOf 方法
//给个对象
Calendar cal1=new GregorianCalendar();
//在将sql转化为 calender
cal1.setTime(date2);
//通过 calender 找到int 类型的数
int year3=cal1.get(Calendar.YEAR);
int month3=cal1.get(Calendar.MONTH); //11-10
int date3=cal1.get(Calendar.DATE);
int weekday3=cal1.get(Calendar.DAY_OF_WEEK); //周日 -1
int count3=cal1.getActualMaximum(Calendar.DATE);//本月最大的天数
//根据int类型的数,找到对应的年份的日历
//System.out.println(a);
int count1=0;//给个计数器,然后记录需要\n的地方
System.out.println("日\t一\t二\t三\t四\t五\t六");
//int a=weekday3-(date3%7);//计算前面需要空开的格数(这个错误)
int count2=0;//记录前面空格数
//第一种方法获取空格数
for (int i = 0; i < 7; i++) {
if((date3%7+i)%7==weekday3){ //这个可以正确计算前面的空格数
count2=i;
break;
}
}
//第二种方法获取空格数
cal1.set(Calendar.DATE,1);
count2=cal1.get(Calendar.DAY_OF_WEEK)-1;
for (int i = 1; i <=count2 ; i++) { //空开格数
System.out.print("\t");//打印空格数
count1++; //记录空开的格数
}
for (int i = 1; i <=count3 ; i++) {
if (i != date3) { //判断日期是否为当前的日期
System.out.print(i + "\t");
} else {
//Integer b=new Integer(date3); //把当前的日期改成字符串
System.out.print(i+"*\t");
}
count1++;
if (count1 % 7 == 0) {
System.out.println("\n");
}
}
}
}
用Java写日历代码,输入日期可以查看本月的日历,可以评论提出意见
最新推荐文章于 2024-08-07 11:15:21 发布