栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 获取两个日期之间的所有月份 (年月)、以及月数、年数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 获取两个日期之间的所有月份 (年月)、以及月数、年数

    
    public static List getMonthBetweenDate(String startTime, String endTime){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
        // 声明保存日期集合
        List list = new ArrayList();
        try {
            // 转化成日期类型
            Date startDate = sdf.parse(startTime);
            Date endDate = sdf.parse(endTime);
 
            //用Calendar 进行日期比较判断
            Calendar calendar = Calendar.getInstance();
            while (startDate.getTime()<=endDate.getTime()){
                // 把日期添加到集合
                list.add(sdf.format(startDate));
                // 设置日期
                calendar.setTime(startDate);
                //把日期增加一天
                calendar.add(Calendar.MONTH, 1);
                // 获取增加后的日期
                startDate=calendar.getTime();
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return list;
    }
 
    public static void main(String[] args) throws ParseException {
        String startStr = "2021-02-26";
        String endStr = "2022-03-09";
        List list = getMonthBetweenDate(startStr, endStr);
        System.out.println(list);
    }

输出结果

 
    public static int getMonth(Date d1, Date d2) {
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        c1.setTime(d1);
        c2.setTime(d2);
        int year1 = c1.get(Calendar.YEAR);
        int year2 = c2.get(Calendar.YEAR);
        int month1 = c1.get(Calendar.MONTH);
        int month2 = c2.get(Calendar.MONTH);
        int day1 = c1.get(Calendar.DAY_OF_MONTH);
        int day2 = c2.get(Calendar.DAY_OF_MONTH);
        // 获取年的差值
        int yearInterval = year1 - year2;
        // 如果 d1的 月-日 小于 d2的 月-日 那么 yearInterval-- 这样就得到了相差的年数
        if (month1 < month2 || month1 == month2 && day1 < day2) {
            yearInterval--;
        }
        // 获取月数差值
        int monthInterval = (month1 + 12) - month2;
        if (day1 < day2) {
            monthInterval--;
        }
        monthInterval %= 12;
        int monthsDiff = Math.abs(yearInterval * 12 + monthInterval);
        return monthsDiff;
    }
    
    public static int getYear(Date startDate, Date endDate) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
        String startDateStr = simpleDateFormat.format(startDate);
        String endDateStr = simpleDateFormat.format(endDate);
        return (Integer.parseInt(endDateStr) - Integer.parseInt(startDateStr)) / 10000;
    }

根据出生日期算年龄

 
    public static int getYear(Date birthdate) {
        Date now = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
        String format1 = simpleDateFormat.format(birthdate);
        String format = simpleDateFormat.format(now);
        return (Integer.parseInt(format) - Integer.parseInt(format1)) / 10000;
    }
package com.xxx;

import org.junit.Test;

import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;


public class Test02 {
    
    @Test
    public void test1(){
        String polApplyDateStr = "20220102";
        String insuredBirthdayStr = "20210909";
        String substring1 = polApplyDateStr.substring(4, 8);
        String substring2 = insuredBirthdayStr.substring(4, 8);
        String substring = polApplyDateStr.substring(0, 4);
        System.out.println(substring);
        System.out.println(substring1);
        System.out.println(substring2);
    }

    
    @Test
    public void test2(){
        String riskAmntHashKey="1:2:3";
        String[] split = riskAmntHashKey.split(":");
        String s = split[1];
        System.out.println(s);
    }

    
    @Test
    public void test3(){
        double f = 111231.5545;
        DecimalFormat df = new DecimalFormat("#.00");
        System.out.println(df.format(f));
    }

    @Test
    public void test4() throws ParseException {

        
        String startStr = "2021-07-10";
        String endStr = "2022-08-10";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
        // 声明保存日期集合
        List list = new ArrayList();

        // 转化成日期类型
        Date startDate = sdf.parse(startStr);
        Date endDate = sdf.parse(endStr);

        //用Calendar 进行日期比较判断
        Calendar calendar = Calendar.getInstance();
        while (startDate.getTime() <= endDate.getTime()) {
            // 把日期添加到集合
            list.add(sdf.format(startDate));
            // 设置日期
            calendar.setTime(startDate);
            //把日期增加一天
            calendar.add(Calendar.MONTH, 1);
            // 获取增加后的日期
            startDate = calendar.getTime();
        }
        System.out.println(list);

    }


}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020587.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号