小结2022.11.24

这篇博客介绍了三个Java编程问题的解题思路:1.输入年月,输出该月所有工作日和周末;2.计算从2022年12月1日起的“三天打鱼两天晒网”计划;3.实现员工入职记录,包括姓名、性别、部门、职位及入职日期。通过这些例子,展示了如何利用Calendar和Scanner类进行日期操作,以及如何设计简单的员工信息管理系统。
摘要由CSDN通过智能技术生成

今日,关于日期类的各种应用场景和解题思路

//问题 ;输入年月,输出该月所有的工作日和周末
//解题思路1 设置对象,日历对象,scanner对象;
// 通过cal获取cal的值
//通过sc对象获取应该需要的值,年月
// 通过cal的set构造方法,对日期值进行改变
//通过for每个月的每一天;
//通过设置条件来得到输出

package week.day4;


import java.lang.annotation.ElementType;
import java.util.Calendar;
import java.util.Scanner;



public class homework {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Calendar cal = Calendar.getInstance();
        int[] workday = new int[30];
        int[] relaxday = new int[30];
        System.out.println("请输入年份");
        int year = sc.nextInt();
        System.out.println("请输入月份");
        int month = sc.nextInt();
        StringBuilder sb = new StringBuilder();
        StringBuilder sb2 = new StringBuilder();
        cal.set(Calendar.YEAR,year);
        cal.set(Calendar.MONTH,month);

        for (int i = 1; i < cal.getActualMaximum(Calendar.DATE); i++) {
            cal.set(Calendar.DATE,i);
            int week = cal.get(Calendar.DAY_OF_WEEK);
            if (week==1||week==7) {
             sb.append(i+"\t");
            }
            else {
                sb2.append(i+"\t");
            }
        }
        System.out.println(sb);
        System.out.println(sb2);


    }
}

2

//问题思路 假设2022年12月1日起,开始执行"三天打鱼两天晒网"计划。输入一个新的日期,输出这天该打鱼
// 还是晒网
//解题思路
//1,通过SimpleDateFormat创建对象,来转格式,
//2创建Scacnner对象
//3获取输入的年月日
//4计算相差多少值
//5通过对5,取余数,来判断是三天还是俩天,

public class home2 {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sd = new SimpleDateFormat("yyy/MM/dd");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个日期");
        String input = sc.next();
        String longnum="2022/12/00";

        Date date1= sd.parse(input);
        Date date2 =sd.parse(longnum);

        long l = date2.getTime()-date1.getTime();
        long day = Math.abs(l)/1000/3600/24;
        int Day = (int)day;
        System.out.println(day);
        switch (Day%5)
        {
                case 1:
                case 2:
                case 3:
                    System.out.println("您输入的日期是"+input+"今天是打渔日");
                break;
            case 4:
            case 0:
                System.out.println("您输入的日期是"+input+"今天是晒网日");;
        }

    }
}

3

实现“员工入职记录”

添加员工时输入姓名、性别、部门、职位,自动记录入职时间

输出员工信息时,输出所有

解题思路

创建scanner对象获取输入

创建StrBuilder 获取对象,来存员工对象

创建Calendar对象来获取当前日期值

public class home3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();
        Calendar cal = Calendar.getInstance();
        int year= cal.get(Calendar.YEAR);
        int month= cal.get(Calendar.YEAR);
        int day= cal.get(Calendar.YEAR);
        while (true) {
            System.out.println("欢迎登入员工入职系统请选择");
            System.out.println("1,员工信息录入" + "\n" + "2,员工信息查询");
            int num =sc.nextInt();
            switch (num) {
                case 1:
                    System.out.println("请输入姓名");
                    sb.append(sc.next()+ "\t");
                    System.out.println("请输入性别");
                    sb.append(sc.next() + "\t");
                    System.out.println("请输入部门");
                    sb.append(sc.next() + "\t");
                    System.out.println("请输入职位");
                    sb.append(sc.next() + "\t");
                    sb.append(year+"年"+month+"月"+day+"日"+"\n");
                    break;
                case 2:
                    System.out.println(sb);

            }

        }

    }
}

今日总结,今天学习的类的方法很多,但是在很多场景也很实用,就像第一题的存取对象是,如果按照一般的思路的话,创建数组时.我们并不知晓我们的数组要设定多长,调用时也相对麻烦,会浪费系统资源,而采用可变字符串时,就极大的减少了我们的时间,还省去了空间大小的问题;

而第二题时,刚开始在设置固定日期初始值是2022/12/01/,但是经过运算的时候,发现相减出来的并不是开始的时间,而是俩个日期相差的时间,所以在运算的时候要把默认的初始日期提前一天,才能正确输出

以往的题,都是根据做一步,在想下一步,但是呢,有时候做着做着就忘记自己到了哪一步,

今天尝试了,先分析问题,然后再想一想问题流程,然后通过记事本写下来

最后根据所写的内容再一步步的执行,会发现解决问题的复杂处理难度高时,通过这一方法,我也能心里有个底,知道没一步和下一步,总体也节约了很多敲代码的时间;以上O.o.加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值