java天数计算函数(当前月天数、某月总天数、某月剩余天数)4种方法实现

这篇具有很好参考价值的文章主要介绍了java天数计算函数(当前月天数、某月总天数、某月剩余天数)4种方法实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1,Java8 LocalDate

    public static int getDaysOfMonth(String dateStr) {
        LocalDate date = LocalDate.parse(dateStr + "-01");
        return date.lengthOfMonth();
    }

2,利用日历函数

    public static int getDaysOfMonth(String dateStr) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(sdf.parse(dateStr));
        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    }

3,也是利用日历函数,但是不需要 throws ParseException


    /**
     * 获取日期当月的天数
     * @param dateStr yyyy-MM 或者yyyy-MM-dd
     * */
    public static int getDaysByDate(String dateStr){
        int year= Integer.parseInt(dateStr.substring(0,4));
        int month=Integer.parseInt(dateStr.substring(5,7));
        Calendar c = Calendar.getInstance();
        c.set(year, month, 0);
        return c.get(Calendar.DAY_OF_MONTH);
    }

测试样例代码: 

        String dateStr = "2023-01";
        int days = getDaysOfMonth(dateStr);
        System.out.println(dateStr + " has " + days + " days.");

4,当月剩余天数

 
    /**
     * 当月剩余天数
     * @param date 格式yyyy-MM-dd
     * */
    public static Integer monthEndNum(String date){
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
        Date dateTime = null;
        try {
            dateTime = format.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Calendar c = Calendar.getInstance();
        c.setTime(dateTime);
        int today = c.get(Calendar.DAY_OF_MONTH);
        int last = c.getActualMaximum(Calendar.DAY_OF_MONTH);
        return last - today;
    }
 
  public static void main(String[] args) {
        Integer days = monthEndNum("2023-01-20");
        System.out.println("2023年1月剩余天数:"+days);
    }

5,获取当前月天数

    //获取当前月的天数
    public static int getDaysOfCurrentMonth() {
        Calendar calendar = Calendar.getInstance();
        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    }

测试代码:

    public static void main(String[] args) throws ParseException {
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = formatter.format(currentTime);
        System.out.println(dateString);

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
        String dateString2 = dateFormat.format(currentTime);
        System.out.println(dateString2);

        Date date1 = dateFormat.parse(dateString2);
        String dateString3 = formatter.format(date1);
        System.out.println(dateString3);


        // 将日期字符串转换为LocalDate对象
        LocalDate date = LocalDate.parse("2023-04-06");
        // 将LocalDate对象格式化为指定格式的字符串
        DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy年M月d日");
        String formattedDate = date.format(formatter1);
        System.out.println(formattedDate);
        // 将格式化后的字符串转换为LocalDate对象
        LocalDate parsedDate = LocalDate.parse(formattedDate, formatter1);
        // 将LocalDate对象转换为指定格式的字符串
        String parsedDateString = parsedDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        System.out.println(parsedDateString);
        // 确认两个日期字符串相等
        assert parsedDateString.equals("2023-04-06");
        // 确认两个LocalDate对象相等
        assert parsedDate.equals(date);

        System.out.println("---------------------");
        String sdate="2023-04-06";
        String sdate2="2023年4月6日";
        String sdate3="2023-04";
        String sdate4="2023年4月";
        System.out.println(convertDateToChs(sdate));
        System.out.println(convertToChinese(sdate));
        System.out.println((convertDateToEn(sdate2)));
        System.out.println((convertDateToEnglish(sdate2)));
        System.out.println((convertToShortChinese(sdate3)));
        System.out.println((convertToShortEnglish(sdate4)));


        String dateStr = "2023-02";
        int days = getDaysByDate(dateStr);
        System.out.println(dateStr + " has " + days + " days.");

        System.out.println("今年有" +   getDaysInCurrentYear() + " days.");
        System.out.println("今年已过去" +   getDaysPassedInCurrentYear() + " days.");
        System.out.println("今年剩余" +   getDaysEndInCurrentYear() + " days.");

    }

测试效果截图:

java获取当前天数,Java,java,天数计算,封装,函数,剩余天数

 文章来源地址https://www.toymoban.com/news/detail-519025.html

到了这里,关于java天数计算函数(当前月天数、某月总天数、某月剩余天数)4种方法实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql日期函数(查询最近n(天/月/年)、计算日期之间的天数等)

    mysql日期函数 目录 mysql查询最近一个月数据 返回当前日期和时间 将字符串转变为日期 日期 d 减去 n 天后的日期 计时间差,返回 datetime_expr2 − datetime_expr1 的时间差算 查询当天数据 ADDDATE(d,n) 计算起始日期 d 加上 n 天的日期 ADDTIME(t,n) n 是一个时间表达式,时间 t 加上时间表达

    2024年02月13日
    浏览(42)
  • Java计算两个日期之间的天数差

    在Java中,我们可以使用Java 8引入的 java.time 包来处理日期和时间。下面是一种方法来计算两个日期之间的天数差。 首先,我们需要导入相关的类: 然后,我们可以编写一个方法来计算日期之间的天数差: 在这个方法中,我们使用了 ChronoUnit.DAYS.between 方法来计算两个 LocalDa

    2024年02月03日
    浏览(39)
  • java计算两个日期间的天数

    1、精确到年月日 2、精确到秒,向下取值 如有问题,欢迎指正~ 如能帮到您,欢迎点赞收藏~

    2024年02月11日
    浏览(49)
  • java 计算两个日期之间相隔的天数

    在Java 8中,你可以使用 java.time 包中的 LocalDate 类和 Period 类来计算两个日期字符串之间相隔的天数。以下是一个示例代码: 在这个示例中,我们首先将日期字符串解析为 LocalDate 对象,然后使用 Period.between() 方法计算两个日期之间的时期。最后,我们使用 Period.getDays() 方法获

    2024年02月05日
    浏览(51)
  • MySQL、Oracle 获取当前系统时间、年份、季度、月份、日期、天数、周数

    1.1.1 获取当前系统时间:NOW() NOW() : 获取当前系统时间, 返回的字符串格式为 YYYY-MM-DD HH:MM:SS。 参考案例: 1.1.2 获取当前日期:CURDATE() 参考案例: 1.1.3 获取当前时间:CURTIME() 参考案例: 1.2.1 获取当前年份:YEAR(NOW()) 参考案例: 1.2.2 获取当前季度:QUARTER(NOW()) 参考案例:

    2024年01月16日
    浏览(61)
  • ES6 全详解 let 、 const 、解构赋值、剩余运算符、函数默认参数、扩展运算符、箭头函数、新增方法,promise、Set、class等等

    ​ ECMAScript 6.0,简称 ES6,是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言 要讲清楚这个问题,需要回顾历史。1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaSc

    2024年04月15日
    浏览(45)
  • 输入某年某月某日,判断这一天是这一年的第几天?(Java)

    代码:         } }  效果图:  这是初级阶段的求法,学过 LocalDate的可以直接用 LocalDate求一年中的第几天  public class Main {         public static void main(String[] args) {                 // 创建一个 LocalDate 对象,表示特定的日期                           

    2024年01月24日
    浏览(40)
  • C# 计算剩余时间

    2024年02月06日
    浏览(63)
  • 计算日期到天数的换算

    目录 1.题目概述 2.题解 思路分析 具体实现 根据输入的日期,计算是这一年的第几天。 输入描述: 输入一行,每行空格分割,分别是年,月,日 输出描述 : 输出是这一年的第几天 示例: 输入:1982 3 4 输出:63 将每个月的天数保存在一个数组中,若输入年份是闰年,则二月

    2024年02月13日
    浏览(44)
  • java 获取当前线程的方法

      我们知道,线程是程序运行的基本单元,是程序中各进程之间通信的桥梁,一个线程的创建和销毁直接影响整个程序的运行效率。 我们在 Java中经常使用 Runnable接口来获取当前线程,获取线程的主要目的就是为了快速地启动进程。但是,由于 Runnable接口实现复杂,因此我们

    2024年02月01日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包