day30 日期转换

一:Date

Date类: 这个类是java.util.Date

  • getTime() : 获取内部维护的long值

Date date = new Date();
long time = date.getTime();
  • setTime():按照指定的long值(表示的时间)设置Date表示的时间

time += 60*60*24*1000;
date.setTime(time);
  • before(): 此时间是否在指定时间之前

          date1.before(date2)             1在2之前吗?

  • after():此时间是否在指定之间之后

二:Calendar

Calendar类:这个类是java.util包下的类,是JDK1.2推出的用于替换Date类的,但是在实际开发中我们还是使用Date类

    和Date对象相互转换

  • getTime() : 获取当前系统时间的Date对象

Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
long time = date.getTime();
  • setTime(): 将当前的calendar按照指定Date时间进行设置

Date beforeDay = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(beforeDay);

    创建当前时区实例对象 向上造型

         Calendar c = Calendar.getInstance();

     设置对象的具体值  get set 方法的调用  

        年月日时分秒:如图

 
 

Date time = calendar.getTime();

calendar.setTime(time);//将date日期数据转化为calendar类型、

c.get(Calendar.HOUR_OF_DAY);
c.get(Calendar.MINUTE);
c.get(Calendar.SECOND);
c.get(Calendar.DAY_OF_WEEK) 
c.get(Calendar.DATE)
c.get(Calendar.MONTH)+1 
add方法
c.set(Calendar.YEAR,Calendar.YEAR+3);
等同c.add(Calendar.YEAR,3)

三点五 作业练习

/**
*随机大小写六位数 大小写英文字符数字
*
*/ 
public class Test {
    public static void main(String[] args) {
        Random random = new Random();

        StringBuilder m = new StringBuilder() ;
        for (int i = 0; i < 6; i++) {
            char a = (char) ('a'+random.nextInt(26));
            char a1 = (char) ('A'+random.nextInt(26));
            int  a2 = (int)(Math.random()*9);
            int a3 = random.nextInt(11);
            if (a3 <= 3){
                m.append(a);
            }else
            if (a3 <= 6){
                m.append(a1);
            }else
            if (a3 <= 9){
                m.append(a2);
            }
        }
        System.out.println(m);


    }
}
/**
 * 输入商品生产日期  保质天数
 * 促销日期是往前一周的周三
 * 2001-02-18
 * 11
 */
public class Test03 {
    public static void main(String[] args) {
        try {
            Scanner scanner = new Scanner(System.in);
            System.out.println("输入生产日期");
            System.out.println("输入保质日期");
            String births = scanner.nextLine();
//            String sells = scanner.next();
            SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd");
            Date birth = s1.parse(births);
//            Date sell = s1.parse(sells);

            int sells = scanner.nextInt();

            //先算出过期日期
            long expiredDays = birth.getTime()+sells*1000*24*60*60;//毫秒值
            Date expiredDay = new Date();
            expiredDay.setTime(expiredDays);

            //过期周x日到前一周周x 的日期
            Date beforeDay = new Date();
            long beforeDays  = expiredDays -  7L*1000*60*60*24;
            beforeDay.setTime(beforeDays);

            //周x到周三的日期
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(beforeDay);
            calendar.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);
            System.out.println(calendar);

            Date time = calendar.getTime();
            String str = s1.format(time);
            System.out.println(str);


        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

 

/**           两种方法
 * 输入商品生产日期  保质天数
 * 促销日期是往前一周的周三
 * 2001-02-18
 * 11  
 */
public class Test03 {
    public static void main(String[] args) {
        try {
            Scanner scanner = new Scanner(System.in);
            System.out.println("输入生产日期");
            System.out.println("输入保质日期");
            String births = scanner.nextLine();
//            String sells = scanner.next();
            SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd");
            Date birth = s1.parse(births);
//            Date sell = s1.parse(sells);

            int sells = scanner.nextInt();

            //先算出过期日期
            long expiredDays = birth.getTime()+sells*1000*24*60*60;//毫秒值
            Date expiredDay = new Date();
            expiredDay.setTime(expiredDays);

            //过期周x日到前一周周x 的日期
            Date beforeDay = new Date();
            long beforeDays  = expiredDays -  7L*1000*60*60*24;
            beforeDay.setTime(beforeDays);

            //周x到周三的日期
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(beforeDay);
            calendar.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);
            System.out.println(calendar);

            Date time = calendar.getTime();
            String str = s1.format(time);
            System.out.println(str);


        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}



/**
 * 计算促销日期
 * 促销日期为该商品过期日前一周的周三
 * <p>
 * 程序启动动,要求用户输入一个商品的生产日期,以及保质期天数
 * 然后经过处理后输出该商品的促销日期
 * <p>
 * 日期格式:yyyy-MM-dd
 * <p>
 * 如:
 * 2023-7-8
 * 15
 * 该商品的促销日期为  2023-7-12
 */
public class Test02 {
    public static void main(String[] args) {

        try {
            Scanner scan = new Scanner(System.in);
            System.out.println("请输入商品生产日期:(格式:yyyy-MM-dd)");
            String createDate = scan.nextLine();
            System.out.println("请输入商品保质期:");
            String strDay = scan.nextLine();
            //将保质期strDay转换int类型
            int days = Integer.parseInt(strDay); //保质期

            //将生产日期(String)转换成Date类型
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date date = sdf.parse(createDate); //生产日期
            //把生产日期date转换成Calendar
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);

            //计算过期日
            calendar.add(Calendar.DAY_OF_YEAR, days);
            //计算过期日的前一周
            calendar.add(Calendar.DAY_OF_YEAR, -7);
            //设置为当周的周三
            calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);

            //将calendar转换成Date,
            Date time = calendar.getTime();
            //将time转换成字符串
            String dateStr = sdf.format(time);
            System.out.println("该商品的打折日是:" + dateStr);


        } catch (ParseException e) {
            e.printStackTrace();
        }


    }
}

 

/**
 * 秒杀活动
 * 开始时间 2023-11-11 00:00:00
 * 结束时间 2023-11-11 00:15:00
 * 小r秒杀时间 00:12:13
 * 小k秒杀时间 00:15:12
 */
public class Test04 {
    public static void main(String[] args) {
        try {
            String s1 = "2023-11-11 00:00:00";
            String s2 = "2023-11-11 00:15:00";
            String r = "2023-11-11 00:12:13";
            String k = "2023-11-11 00:15:12";
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date1 = simpleDateFormat.parse(s1);
            Date date2 = simpleDateFormat.parse(s2);
            Date dater = simpleDateFormat.parse(r);
            Date datek = simpleDateFormat.parse(k);

            if (dater.before(date2) && dater.after(date1) ){
                System.out.println("成功");
            }else {
                System.out.println("shibai");
            }

            if (datek.before(date2) && datek.after(date1)){ System.out.println("成功");
            }else {
                System.out.println("shibai");
            }


        } catch (ParseException e) {
            e.printStackTrace();
        }

    }
}

三:SimpleDatetime

         创建SimpleDatetime对象  格式任意设置

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");格式

  • yyyy:年

  • MM:月

  • dd: 日

  • HH:24小时的时间

  • hh:12小时的时间

  • mm:分钟

  • ss:秒

           实现String类和Date类相互转换   需要try{}crach(){}抛出格式不匹配异常       

  • parse() 将字符串转换成Date类型

String date = "2008-08-08 20-08-08";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date d = simpleDateFormat.parse(date);
  • format() 将Date类型转换成String类型

Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
String dateStr = simpleDateFormat.format(date);

抛出格式不匹配异常

try {
    String s1 = "2001-02-18";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date date1 = simpleDateFormat.parse(s1);
    Date date2 = new Date();
    System.out.println(date1.before(date2));
    System.out.println(date1.after(date2));
} catch (ParseException e) {
    e.printStackTrace();
}

 

四:Math  静态方法

double e = Math.E;
double pi = Math.PI;
Math.abs(323); //绝对值
Math.cbrt(2);  //立方根
Math.floor(2.55);//向上取整
Math.ceil(3.66);//向下取整
Math.round(2.3);
Math.round(1.88);//四舍五入
Math.sqrt(3);//平方根
Math.pow(3,2);//几的几次方
Math.random();//生成0-1随机数   包含0不包含1
double v = Math.random() * 10 + 1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/98352.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android学习之路(11) ActionBar与ToolBar的使用

自android5.0开始&#xff0c;AppCompatActivity代替ActionBarActivity&#xff0c;而且ToolBar也代替了ActionBar&#xff0c;下面就是ActionBar和ToolBar的使用 ActionBar 1、截图 2、使用 2.1、AppCompatActivity和其对应的Theme AppCompatActivity使用的是v7的ActionBa…

快乐开源活动全面升级!提PR,赢PS5、Switch等缤纷好礼

快乐开源 活动升级 礼品升级 PS5、Switch、Apple、雷蛇、富士…… 开发者们想要的 我们安排&#xff01; 飞桨快乐开源活动旨在鼓励更多的开发者参与到飞桨社区的开源建设中&#xff0c;帮助修复 bug 或贡献 feature。活动起初只是一个「提 PR 领取新年礼物 &#x1f381;」…

python简介

Python 是一门优雅而健壮的编程语言&#xff0c;它继承了传统编译语言的强大性和通用性&#xff0c;同时也借鉴了脚本语言和解释语言的易用性。 Python 的历史 Python是由创始人贵铎范罗萨姆&#xff08;Guido van Rossum&#xff09;在阿姆斯特丹于1989年圣诞节期间&#xf…

多张图片转为pdf怎么弄?

多张图片转为pdf怎么弄&#xff1f;在网络传输过程中&#xff0c;为了避免图片格式文件出现差错&#xff0c;并确保图片的清晰度和色彩不因不同设备而有所改变&#xff0c;常见的做法是将图片转换为PDF格式。然而&#xff0c;当涉及到多张图片时&#xff0c;逐一转换将会变得相…

PyCharm切换虚拟环境

PyCharm切换虚拟环境 为了满足不同任务需要不同版本的包&#xff0c;可以在Anaconda或者Miniconda创建多个虚拟环境文件夹&#xff0c;并在PyCharm下切换虚拟环境。 解决方案 1、打开Ananconda Prompt 2、创建自己的虚拟环境 格式&#xff1a;conda create -n 虚拟环境名字…

虚拟机的使用

首先需要安装VMware软件&#xff0c;这是虚拟机&#xff0c;在里面可以实现在windows的笔记本上运行包括&#xff0c;windows11和linux系统的开发和研究。 VMware是一种虚拟化技术&#xff0c;可以让你在一台物理计算机上运行多个操作系统和应用程序&#xff0c;而不需要重启或…

如何在,Linux中安装Luajit2.*

1.文件下载The LuaJIT Project 2.将下载文件上传到对应的服务器&#xff1a;例如/opt 3.进入对应的文件夹 4.make PREFIX/usr/local&#xff0c;设置安装路径 5.make install&#xff0c;编译安装 6.进入安装目录&#xff0c;cd /usr/local/include/luajit-2.0 7.luajit -v…

目标检测笔记(十二):如何通过界面化操作YOLOv5完成数据集的自动标注

文章目录 一、意义二、修改源码获取三、自动标注前期准备四、开始自动标注五、可视化标注效果六、XML转换TXT 一、意义 通过界面化操作YOLOv5完成数据集的自动标注的意义在于简化数据标注的流程&#xff0c;提高标注的效率和准确性。 传统的数据集标注通常需要手动绘制边界框…

第三届计算机、物联网与控制工程国际学术会议(CITCE 2023)

第三届计算机、物联网与控制工程国际学术会议&#xff08;CITCE 2023) The 3rd International Conference on Computer, Internet of Things and Control Engineering&#xff08;CITCE 2023) 第三届计算机、物联网与控制工程国际学术会议&#xff08;CITCE 2023&#xff09;…

ChatGPT在医疗领域可应用于改善与患者的沟通

注意&#xff1a;本信息仅供参考&#xff0c;发布该内容旨在传递更多信息的目的&#xff0c;并不意味着赞同其观点或证实其说法。 自从ChatGPT在2022年末对公众开放以来&#xff0c;OpenAI的这款生成式AI聊天机器人在医疗领域展示出了巨大潜力。它已经通过了美国医学执照考试&a…

NameError: name ‘_mysql‘ is not defined

报错信息 Traceback (most recent call last):File "/Users/xuruilong/Desktop/cmabc_back/.enve/lib/python3.9/site-packages/MySQLdb/__init__.py", line 18, in <module>from . import _mysql ImportError: dlopen(/Users/xuruilong/Desktop/cmabc_back/.…

无涯教程-Android - Intents/Filters

Android Intent 是要执行的操作的抽象描述。它可以与 startActivity 一起启动Activity&#xff0c;将 broadcastIntent 发送给任何BroadcastReceiver组件&#xff0c;并与 startService(Intent)或 bindService(Intent&#xff0c;ServiceConnection&#xff0c;int)与后台服务进…

Linux驱动——Tiny4412芯片_Source Insight的下载+Linux3.5内核下工程的创建

文章目录 前言Source Insight的下载1.下载地址2.下载步骤 linux3.5内核下工程的创建 前言 本博客仅作为笔记总结&#xff0c;以及帮助有需要的人&#xff0c;不作权威解释。 Source Insight的下载 1.下载地址 官网&#xff1a;https://www.sourceinsight.com/ 另外可以选择…

WPF C# .NET7 基础学习

学习视频地址&#xff1a;https://www.bilibili.com/video/BV1hx4y1G7C6?p3&vd_source986db470823ebc16fe0b3d235addf050 开发工具&#xff1a;Visual Studio 2022 Community 基础框架&#xff1a;.Net 6.0 下载创建过程略 .Net和.Framework 区别是Net是依赖项&#xff…

C语言(第三十天)

1. 什么是bug bug本意是昆虫”或“虫子”&#xff0c;现在一般是指在电脑系统或程序中&#xff0c;隐藏着的一些未被发现的缺陷或问 题&#xff0c;简称程序漏洞。 “Bug” 的创始人格蕾丝赫柏&#xff08;Grace Murray Hopper&#xff09;&#xff0c;她是一位为美国海军工作的…

不需要任何编程经验也能牢固掌握Java精髓——《Java官方入门教程(第9版·Java 17)》

《Java官方入门教程&#xff08;第9版Java 17&#xff09;》针对Java SE 17做了全面细致的更新&#xff0c;将引导你轻松学习最新的核心Java编程技能。《Java官方入门教程&#xff08;第9版Java 17&#xff09;》由畅销编程书作者Herbert Schildt撰写&#xff0c;开篇讲述基础知…

运放的选型

一、运放选型 二、运放选型实例 选择运放首先要回答三个问题&#xff1a; 1.运放的供电电压是多少&#xff0c;低于5V,12-16V之间&#xff0c;大于24V 2.运算放大器的增益带宽积和压摆率 3.性能 负载考虑的是Isc 不是轨到轨供电电压要高于最大输出电压2V

1.Python操作txt文本

文章目录 1.Python读取一个txt文件的内容并将其写入到另一个txt文件2.Python读取一个未知编码的文件并将其设置为指定编码格式3.Python实现txt文件中字符串的替换 1.Python读取一个txt文件的内容并将其写入到另一个txt文件 # -*- encoding:gb2312 -*- import chardetdef read_…

华为云软件精英实战营——感受软件改变世界,享受Coding乐趣

机器人已经在诸多领域显现出巨大的商业价值&#xff0c;华为云计算致力于以云助端的方式为机器人产业带来全新机会 如果您是开发爱好者&#xff0c;想了解华为云&#xff0c;想和其他自由开发者交流经验&#xff1b; 如果您是学生&#xff0c;想和正在从事软件开发行业的大佬…