0
点赞
收藏
分享

微信扫一扫

java打印日历

蓝哆啦呀 2022-01-05 阅读 52
java

打印日历

先获取用户输入的年和月

然后创建日历对象

把年和月添加到对象里面  再添加一个1   1为1号  

然后去判断用户输入月份的1号是星期几

是星期几就有几个空格

打印玩空格需要打印天数

天数是从第一天开始

所以for循环要从1开始 而不是0

1小于哟用户输入的月份的天数  

假如用户输入的是1月  则一月有31天   则1小于31添加条件

当每打印7个 日子之后就换换行

所以添加一个判断条件  

判断条件有很多种  (.............动动脑袋瓜自行添加吧)

详细的看代码中的解释吧

Calender是抽象类

为什么要打空格

因为不是所有的1号都是从周一开始         这个问题有点  .....

 

上菜

package main;

import javax.swing.plaf.synth.SynthOptionPaneUI;
import java.util.Calendar;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        /***
         * 王总输入部分
         */
        Scanner input = new Scanner(System.in);
        System.out.println("请输入年");
        int year = input.nextInt();
        System.out.println("请输入月");
        int month = input.nextInt()-1;


        /***
         * 新建对象部分
         */
        Calendar a = Calendar.getInstance();


        /***
         * 创建年月日部分
         */
        a.set(year,month,1);  //我在这里1号


        /**
         * 判断用户输入的月份的  1号  是周几
         * 是周几前面就有几个空
         */
        int say1 = a.get(Calendar.DAY_OF_WEEK)-1;
        System.out.println(year+"年");
        System.out.println("星期"+say1+"是一号");
        System.out.println("日\t一\t二\t三\t四\t五\t六\t");


        /***
         * 打印一号前面个空格
         */
        for (int i = 0;i<say1;i++){
            System.out.print("\t");
        }


        /**
         * 打印天数  因为月份开始是从第一天  所以i=1
         * i<用户输入月份的总天数+1   i++
         * 也可以这样写
         * i<=用户输入的总天数    i++
         */
        for (int i = 1;i<(a.getActualMaximum(Calendar.DAY_OF_MONTH)+1);i++){
            /**这里是当星期几变成周日的时候换行
             * 这里的逻辑是这样的
             * 今天是周六然后打印1号
             * 然后say1++变成了7
             * 然后打印回车并且清零say1
             * 0      1      2      3      4      5      6
             * 日     一     二     三     四      五     六
             * 在第二行打印2号*
             */
            if(say1 == 7){
                System.out.println();
                say1 = 0;
            }
            System.out.print(i+"\t");
            say1++;

        }
    }
}

运行结果

 

举报

相关推荐

0 条评论