iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java天数计算函数(当前月天数、某月总天数、某月剩余天数)4种方法实现
  • 956
分享到

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

java天数计算封装函数剩余天数 2023-09-04 19:09:11 956人浏览 薄情痞子
摘要

1,Java8 LocalDate public static int getDaysOfMonth(String dateStr) { LocalDate date = LocalDate.parse(dateStr

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

        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,当月剩余天数

         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.");    }

测试效果截图:

 

来源地址:https://blog.csdn.net/wh445306/article/details/130642759

--结束END--

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

本文链接: https://www.lsjlt.com/news/394164.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作