编写日历(自己编写日历详解)

日历的编写

1.键盘信息录入
查看需要知道的年份的日期。

Scanner scanner = new Scanner(System.in);
System.out.print("请输入你想要查看的日期(输入格式:2022-2-12):");
String i = scanner.next();
System.out.println(i);

2.将String类型转化为日期类型:

java.sql.Date d = java.sql.Date.valueOf("2022-2-1");

2.1:将Date类型转化为Calendar类型:

Calendar cal = Calendar.getInstance();
 cal.setTime(d);

3.输出日历的星期:

System.out.println("日\t一\t二\t三\t四\t五\t六\t");

4.获取输入的年份信息中的月数中的最大值:

int maxDay = cal.getActualMaximum(Calendar.DATE);

5.遍历本月最大的天的数字

for (int i = 1; i <=maxDay ; i++) {
            //7.在当天的日期上加上*号
            if (nowDay==i){
                System.out.print(i+"*\t");
            }else {
                System.out.print(i+"\t");
            }
            count++;
            if (count % 7 == 0) {
                System.out.println();
            }
        }

6.引用一个计数器,用来计算换行(每7个数字之后进行换行):

int count = 0;

7.在当天的日期上加上*号

if (nowDay==i){
                System.out.print(i+"*\t");
            }else {
                System.out.print(i+"\t");
            }
            count++;
            if (count % 7 == 0) {//表示的是满足在第七个数字进行换行
                System.out.println();
            }

8.求出当天日期

int nowDay = cal.get(Calendar.DATE);

9.求出本月的第一天,将日期置成本月的第一天

cal.set(Calendar.DATE,1);
int dayofweek = cal.get(Calendar.DAY_OF_WEEK);

10.求出前面的空格数

int space = dayofweek-1;

11.遍历space:

for (int i = 1; i <=space ; i++) {
     System.out.print("\t");
   }

源码展示+注释:

import java.util.Calendar;

public class DateTest04 {
    public static void main(String[] args) {
        //1.键盘信息录入
//        Scanner sc = new Scanner(System.in);
//        System.out.print("请输入你想要查看的日期(输入格式:2022-2-12):");
//        String i = sc.next();
//        System.out.println(i);
        //2.将接收的String类型转化为Date类型:
        java.sql.Date d = java.sql.Date.valueOf("2022-2-1");
        //2.1将Date类型转化为Calendar类型:
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        //System.out.println(cal);
        //3.输出日历的星期
        System.out.println("日\t一\t二\t三\t四\t五\t六\t");
        //4.先获取本月最大的天数
        int maxDay = cal.getActualMaximum(Calendar.DATE);
        //System.out.println(maxDay);//输出当月对大的天数
        //8.求出当天日期
        int nowDay = cal.get(Calendar.DATE);
        //9.求出本月的第一天
        //9.1将日期置成本月的第一天
        cal.set(Calendar.DATE,1);
       int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
        System.out.println("这是这个月第"+dayofweek+"天");
        //10.求出前面的空格数
        int space = dayofweek-1;
        //6.引用一个计数器,用来计算换行(每7个数字之后进行换行):
        int count = space;
        //11.遍历space:
        for (int i = 1; i <=space ; i++) {
            System.out.print("\t");
        }
        //5.遍历本月最大的天的数字
        for (int i = 1; i <=maxDay ; i++) {
            //7.在当天的日期上加上*号
            if (nowDay==i){
                System.out.print(i+"*\t");
            }else {
                System.out.print(i+"\t");
            }
            count++;
            if (count % 7 == 0) {//表示的是满足在第七个数字进行换行
                System.out.println();
            }
        }
        //sc.close();
    }
}

结果展示:
1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值