栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA 知识----找到休息日训练任务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA 知识----找到休息日训练任务

任务名称

某公司软件开发工程师孙工,作息规律为上三天班,休息一天,经常不确定休息日 是否周末,为此,请你开发一个程序,当孙工输入年及月,以日历方式显示对应月 份的休息日,用中括号进行标记.同时,统计出本月有几天休息,轮到周末休息有 几天.(注:首次休息日是 2020 年 2 月 2 日)。

 

代码及注释

代码1:数据处理部分

package com.java.task010301_002;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class FindDao {
    View view = new View();
    
    public void calculate() throws ParseException {
        //获取指定年月
        int year = view.getYear();
        int month = view.getMonth()-1;//类中月份范围0-11,用户输入1-12
        // 使用默认时区和语言环境获得一个日历
        Calendar calendar = Calendar.getInstance();
        //设置当前日历为用户输入的日期
        calendar.set(year,month,1);
        //获取本月最大天数----DAY_OF_MONTH:get和 set字段编号表示当月的日期。
        int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        //判断本月第一天是星期几------DAY_OF_WEEK: get和set字段编号表示星期几
        int week = calendar.get(Calendar.DAY_OF_WEEK);
        //日历横头---星期显示
        view.weekView();
        //第一天是星期几,前面就留出多少空格,保证对齐
        for (int i=1;i=0 && days%4==0){
            return true;
        }
        return false;
    }
}

代码2:数据输出展示部分 (视图部分)

package com.java.task010301_002;

import java.util.Scanner;

public class View {
    Scanner input = new Scanner(System.in);
    //获取年份:
    public int getYear(){
        System.out.println("请输入年:");
        String inputYear = input.nextLine();
        int year = -1;
        try {
            year = Integer.parseInt(inputYear);
        }catch (NumberFormatException e){
        }
        if (year<1000 || year>10000){
            System.out.println("格式输入有误,请重新输入---");
            return getYear();
        }
        return year;
    }
    //获取月份
    public int getMonth(){
        System.out.println("请输入月份:");
        String inputMonth = input.nextLine();
        int month = -1;
        try {
           month = Integer.parseInt(inputMonth);
        } catch (NumberFormatException e) {
        }
        if (month<1 || month>13){
            System.out.println("格式输入有误,请重新输入---");
            return getMonth();
        }
        return month;
    }
    //是否继续查找
    public int proceedFind(){
        System.out.println("是否继续查找?1.继续 0.退出");
        String s = input.nextLine();
        int flag = -1;
        try {
            flag = Integer.parseInt(s);
        }catch (NumberFormatException e){
        }
        if (flag!=0 && flag!=1){
            System.out.println("格式输入有误,请重新输入---");
            return proceedFind();
        }
        return flag;
    }
    //日历横头---星期显示
    public void weekView(){
        System.out.println("星期日t星期一t星期二t星期三t星期四t星期五t星期六");
    }
}

代码3:主函数调用部分 

package com.java.task010301_002;

import java.text.ParseException;

public class MainTest {
    public static void main(String[] args) throws ParseException {
        FindDao findDao = new FindDao();
        View view = new View();
        while (true){
            System.out.println("-------欢迎来到工作日/休息日查询系统---------");
            findDao.calculate();
            //判断是否继续
            int proceed = view.proceedFind();
            if (proceed == 0){
                System.out.println("感谢使用!");
                break;
            }
        }
    }
}
运行结果展示 

注意:题目要求从2020年2月2日开始,所以我们要首先验证一下,开始时间是否符合题意。因为本人出现过这种错误,所以在此小小提醒一下。

实现继续查找功能: 

 

实现退出功能: 

 

总结

对之前所学的知识点做一个小小的总结,希望各位大佬不吝赐教。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820505.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号