ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java代码------常用工具类(尚马day14作业)Week4(5)

2022-03-01 18:01:10  阅读:190  来源: 互联网

标签:尚马 java void static 2022 Date Calendar 常用工具 calendar


(1)

/**
 * @author: sunshine
 * @description:
 * @data: 2022/2/28  20:56
 * @version: 0.1
 * @since: jdk11
 */
//1.将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
public class Exercise1 {
    public static void main(String[] args) {
     demo1();  //(jdk1.8之前)
     demo2();  //(jdk1.8之后)
    }

    private static void demo2() {
        LocalDateTime localDateTime = LocalDateTime.of(2022,Calendar.FEBRUARY,1,12,0,0);

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(PATTERN);
        String format = formatter.format(localDateTime);
        System.out.println(format);

        //String format1 = localDateTime.format(formatter);

    }

    private static final String PATTERN = "yyyy-MM-dd HH:mm:ss";

    private static void demo1() {
       //Date转String
        //1.创建Date对象
        Date date = new Date();  //获得系统当前时间
        long time = date.getTime();  //获得毫秒数(不推荐)

        long millis = System.currentTimeMillis();  //推荐

        //创建Calender对象
        Calendar calendar = Calendar.getInstance();
        calendar.set(2022,Calendar.FEBRUARY,1,12,0,0);  //2022-2-1 12:00:00

        //Calender转Date
        Date date1 = calendar.getTime();

        //2.创建格式类DateFormat
        DateFormat dateFormat = new SimpleDateFormat(PATTERN);
        String dateStr = dateFormat.format(date);
        System.out.println(dateStr);
    }
}

(2)

/**
 * @author: sunshine
 * @description:
 * @data: 2022/2/28  21:22
 * @version: 0.1
 * @since: jdk11
 */
//2.使用Calendar类的相关属性以及方法!打印出某年某个月的日历信息!(要求年月日由命令行输入)
public class Exercise2 {
    public static void main(String[] args) {
        //demo3();
        demo4();
    }

    private static void demo4() {
        //动态月份的情况
        int year = 2022;
        Scanner input = new Scanner(System.in);
        System.out.println("请录入月份:");
        int month = input.nextInt();

        Calendar calendar = Calendar.getInstance();
        calendar.set(year,month-1,1);

        System.out.println("日\t一\t二\t三\t四\t五\t六");
        int totalDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

        //判断1号有几个空格
        int day = calendar.get(Calendar.DAY_OF_WEEK);
        for (int i = 1; i < day; i++) {
            System.out.print("\t");
        }

        for (int i = 1; i <= totalDay; i++) {
            System.out.print(i+"\t");
            //判断当前天是否为一周最后一天,是则换行
            calendar.set(Calendar.DAY_OF_MONTH,i);
            if (calendar.get(Calendar.DAY_OF_WEEK)==7){
                System.out.println();
            }
        }

    }

    private static void demo3() {
        //固定月份的情况
        int year = 2022;
        int month = 2;

        Calendar calendar = Calendar.getInstance();
        calendar.set(year,month-1,1);     //2月份的序号是1

        System.out.println("日\t一\t二\t三\t四\t五\t六");
        int totalDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

        System.out.print("\t\t");
        for (int i = 1; i <= totalDay; i++) {
            System.out.print(i+"\t");
            //判断当前天是否为一周最后一天,是则换行
            calendar.set(Calendar.DAY_OF_MONTH,i);
            if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){
                System.out.println();
            }
        }

    }
}

(3)

//4.计算两个时间相差几个小时
public class Exercise4 {
    public static void main(String[] args) {
        //demo1();
        demo2();
    }

    private static void demo2() {
        //LocalDateTime 与 LocalDateTime
        LocalDateTime dateTime1 = LocalDateTime.of(2022,Calendar.FEBRUARY,1,12,0,0);
        LocalDateTime dateTime2 = LocalDateTime.now();

        long hours = dateTime1.until(dateTime2, ChronoUnit.HOURS);  //括号里的减括号外面的
        System.out.println(hours);
    }

    private static void demo1() {
        //Date 与 Date
        Calendar calendar = Calendar.getInstance();
        calendar.set(2022,Calendar.FEBRUARY,1,12,0,0);  //2022-2-1 12:00:00
        Date date1 = calendar.getTime();
        Date date2 = new Date();

        long result = Math.abs((date1.getTime()-date2.getTime())/1000/3600);
        System.out.println(result);
    }
}

(4)

/**
 * @author: sunshine
 * @description:
 * @data: 2022/2/28  21:24
 * @version: 0.1
 * @since: jdk11
 */
//5.一个方法,要求传入时间和间隔天数,返回新的日期
public class Exercise5 {
    public static void main(String[] args) {
        demo1(new Date(),10);   //Date之间的操作
        demo2(LocalDate.now(),10);   //LocalDate之间的操作
    }

    private static LocalDate demo2(LocalDate localDate,int days) {
        return localDate.plusDays(days);

    }

    private static Date demo1(Date date,int days) {
         //传入时间加时间间隔
         //用毫秒数来写
        long time = date.getTime() + Duration.ofDays(days).toMillis();   //加号后面的是天转毫秒

        return new Date(time);
    }
}

(5)

/**
 * @author: sunshine
 * @description:
 * @data: 2022/2/28  21:24
 * @version: 0.1
 * @since: jdk11
 */
//6.要求写一个工具类,可以自定义获取N个随机数字或字母(0~9,a~z,A~Z混合一起)
public class Exercise6 {
    public static void main(String[] args) {
        demo1();
        //demo2();
    }

    private static void demo2() {
        StringBuilder builder = new StringBuilder();

        ThreadLocalRandom random = ThreadLocalRandom.current();
        int choice = random.nextInt(0,3);
        for (int i = 1; i <= 5; i++) {
            char ch = ' ';
            switch (choice) {
                case 0:
                    ch = (char)random.nextInt(48,57);
                    break;
                case 1:
                    ch = (char)random.nextInt(68,90);
                    break;
                case 2:
                    ch = (char)random.nextInt(97,122);
                    break;
            }
            builder.append(ch);
        }
        System.out.println(builder.toString());
    }

    private static void demo1() {
        //48-57 0-9      A-Z 65-90     a-z 97-122
        ThreadLocalRandom random = ThreadLocalRandom.current();

        StringBuilder builder = new StringBuilder();
        int count = 5;
        for(int i=1;i<=count;i++){
            int num = random.nextInt(48,122);
            if(num>=48 && num<=57){
                num = num -48;     //直接变成对应数字
                builder.append(num);
            }else if( (num>=65 && num<=90) || (num>=97 && num<=122) ){
                char ch = (char)num;    //数字转字符
                builder.append(ch);
            }else {
                i--;
            }
        }
        System.out.println(builder.toString());
    }
}

标签:尚马,java,void,static,2022,Date,Calendar,常用工具,calendar
来源: https://blog.csdn.net/sunshine195/article/details/123210448

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有