- /**
- * 获取两个日期之间的所有月份 (年月)
- *
- * @param startTime
- * @param endTime
- * @return:YYYY-MM
- */
- public static List<String> getMonthBetweenDate(String startTime, String endTime){
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
- // 声明保存日期集合
- List<String> list = new ArrayList<String>();
- 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<String> list = getMonthBetweenDate(startStr, endStr);
- System.out.println(list);
- }
输出结果

- /**
- * 根据两个时间获取相差的月数
- * @param d1 日期起期
- * @param d2 日期止期
- * @return
- */
- 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;
- }
- /**
- * 根据两个日期获取相差年数
- * @param startDate 日期起期
- * @param endDate 日期止期
- * @return
- */
- 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;
- }
根据出生日期算年龄
- /**
- * 根据出生日期获取当前时间的年龄
- * @param birthdate
- * @return
- */
- 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;
-
- /**
- * @author Chang
- * @program: bmps-cloud-core-prd07
- * @description: 测试类
- * @date 2022-07-17 15:21:01
- */
- 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 {
-
- /**
- * 获取两个日期之间的所有月份 (年月)
- *
- * @param startTime
- * @param endTime
- * @return:YYYY-MM
- */
- 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);
-
- }
-
-
- }