calendar类练习

找到休息日任务

困难

1.如何空格打印
2.如何找到休息日
3.如何找到在周末的休息日并计数

import java.util.Calendar;
import java.util.Scanner;

public class restDate {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        calendar2.set(2020,01,02);
        //System.out.println(calendar2.getTime());

        System.out.println("请输入年:");
        int year = scanner.nextInt();
        System.out.println("请输入月:");
        int month = scanner.nextInt();

        calendar1.set(Calendar.YEAR, year);
        calendar1.set(Calendar.MONTH, month-1);//日历中月份1-12对应的是0-11
        int actualMaximum = calendar1.getActualMaximum(Calendar.DATE);//获得该月最大天数

        calendar1.set(Calendar.DAY_OF_MONTH,1);
        //System.out.println(calendar1.getTime());
        int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK);//获得该月第一天是星期几
        //System.out.println(dayOfWeek);

        System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
        int countNumber = 0;
        for (int i = 0; i < dayOfWeek; i++) {
            if (i > 0) {
                System.out.print( " " + "\t\t");
            }
            countNumber++;
        }
        //System.out.println(countNumber);

        int countNumber1 = 0;
        int countNumber2 = 0;
        for (int i = 0; i < actualMaximum; i++){
            calendar1.set(Calendar.DAY_OF_MONTH,i + 1);
            if ((calendar1.get(Calendar.DAY_OF_YEAR) - calendar2.get(Calendar.DAY_OF_YEAR)) % 4 == 0) {
                System.out.print(("[" + (i + 1) + "]") + "  \t");
                countNumber1++;
                if (calendar1.get(Calendar.DAY_OF_WEEK) == 1 || calendar1.get(Calendar.DAY_OF_WEEK) == 7) {
                    countNumber2++;
                }
            } else {
                System.out.print((i + 1) + "\t\t");
            }
            if (countNumber % 7 == 0){
                System.out.println();
            }
            countNumber++;
        }
        System.out.println();
        System.out.println("本月休息天数:" + countNumber1);
        System.out.println("本月轮到周末休息天数:" + countNumber2);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值