package com.jesims.busresume.web;

import org.springframework.stereotype.Service;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*; @Service
public class RiskControlRulesDateUtils {
private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); /**
* 获取前x月的日期
* @param month
* @return
*/
public Map<String,String> getNowAndBefore(int month){
Date now = new Date();
Date newDate = stepMonth(now, -month);
Map<String,String> map =new HashMap<>();
// 现在时间
map.put("now",DATE_FORMAT.format(now));
// 之前时间
map.put("before",DATE_FORMAT.format(newDate));
return map;
} /**
* 获取后x天的日期
* @param day
* @return
*/
public Map<String,String> getNowAndChangeDay(int day){
Date now = new Date();
Date newDate = stepDay(now, day);
Map<String,String> map =new HashMap<>();
// 现在时间
map.put("now",DATE_FORMAT.format(now));
// 之后时间
map.put("change",DATE_FORMAT.format(newDate));
return map;
} /**
* 在给定的日期加上或减去指定月份后的日期
* @param sourceDate 原始时间
* @param month 要调整的月份,向前为负数,向后为正数
* @return
*/
public Date stepMonth(Date sourceDate, int month) {
Calendar c = Calendar.getInstance();
c.setTime(sourceDate);
c.add(Calendar.MONTH, month);
return c.getTime();
}
/**
* 在给定的日期加上或减去指定月份后的日期
* @param
* @param day 要调整的天数,向前为负数,向后为正数
* @return
*/
public Date stepDay(Date sourceDate, int day) {
Calendar c = Calendar.getInstance();
c.setTime(sourceDate);
c.add(Calendar.DAY_OF_MONTH, day);
return c.getTime();
} /**
* 输出如下:
* "[2016-02, 2016-03, 2016-04, 2016-05, 2016-06, 2016-07,
* 2016-08, 2016-09, 2016-10, 2016-11, 2016-12, 2017-01]"
*/
/**
* 获取当前系统时间最近12月的年月(含当月)
* @return
*/
public String[] getLatest12Month(){
String[] latest12Months = new String[12];
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+1); //要先+1,才能把本月的算进去
for(int i=0; i<12; i++){
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1); //逐次往前推1个月
latest12Months[11-i] = cal.get(Calendar.YEAR)+ "-" +fillZero(cal.get(Calendar.MONTH)+1);
}
System.out.println(Arrays.toString(latest12Months)); return latest12Months;
}
public List<String> getLast12Month(){
List<String> list =new ArrayList<>();
String[] latest12Month = getLatest12Month();
for (int i = 0; i < latest12Month.length; i++) {
list.add(latest12Month[i]);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
} return list;
} /**
* 格式化月份
*/
public static String fillZero(int i){
String month = "";
if(i<10){
month = "0" + i;
}else{
month = String.valueOf(i);
}
return month;
}
}

获取前(后)x月的日期的更多相关文章

  1. js获取前几个月的具体日期

    // 往前数monthNum月份,不能往后数monthNum getPreMonthDay("2018-12-28",20) // 往前数monthNum月份,不能往后数month ...

  2. js获取前之前或之后的日期

    function fun_date(aa){ var date1 = new Date(), time1=date1.getFullYear()+"-"+(date1.getMon ...

  3. 用javascript写一个显示时间差 几分钟前 几小时前 几天前 几周前 大于一个月显示日期

    window.onload = function(){ var show_times = $(".times span"); for(var i=0;i<show_times ...

  4. python获取当前日期前后N天或N月的日期

    # -*- coding: utf-8 -*- '''获取当前日期前后N天或N月的日期''' from time import strftime, localtime from datetime im ...

  5. python里如何获取当前日期前后N天或N月的日期

    #!/usr/bin/python#_*_ coding:UTF-8_*_ import timeimport datetimeimport mathimport calendar ''' time. ...

  6. 【python】python获取当前日期前后N天或N月的日期

    # -*- coding: utf- -*- '''获取当前日期前后N天或N月的日期''' from time import strftime, localtime from datetime imp ...

  7. PHP获取指定时间的前6个月月份 、获取前6天日期

    //获取前6个月月份 public function to_sex_month(){ $today = input('param.today') ? input('param.today') : da ...

  8. php获取前一天,前一个月,前一年的时间

    获取前一天的时间: $mytime= date("Y-m-d H:i:s", strtotime("-1 day")); 获取三天前的时间: $mytime= ...

  9. php 基础 php获取前一天,前一个月,前一年的时间

    获取前一天的时间: $mytime= date("Y-m-d H:i:s", strtotime("-1 day")); $mytime=mktime(0, 0 ...

  10. js控制日期的前或后N天,前或后一个月

    /*获取指定日期前或者后指定间隔时间* sdate:指定日期* interval:时间间隔* caret:间隔符*/function getNowFormatDate(sdate,interval,c ...

随机推荐

  1. 基于开源PolarDB-X打造中正智能身份认证业务数据基座

    简介: 在10月25日由阿里云开发者社区.PolarDB开源社区.infoQ联合举办的「开源人说」第三期--<数据库PolarDB专场>沙龙上,中正智能科技有限公司平台软件部研发总监韩毅带 ...

  2. SysAK 应用抖动诊断篇—— eBPF又立功了! | 龙蜥技术

    ​简介:且看 SysAK 是如何打造一款性能开销不大.安全可靠.且灵活的关中断检测工具. ​ 文 / 系统运维 SIG 编者按:还记得曾经风靡一时的狄仁杰探案系列之<他抖任他抖,IO诊断在我手& ...

  3. [FAQ] Git 修改最后一次的提交人和提交时间 ?

    $ date -R Tue, 21 Mar 2021 21:08:58 +0800 $ git commit --amend  --author="xxx <xxx@email.com ...

  4. jqGrid--动态列

    前台部门 <select id="xuenian" name="xuenian" class="form-control">&l ...

  5. Git的操作使用

    Git结构: # 工作区:当前编辑的区域 # 缓存区:add之后的区域 # 本地仓库:commit之后的区域 # 远程仓库:GitHub,gitlab,码云... 一.Git的初步认识 一.Git是什 ...

  6. Multisim仿真验证之二极管的特性参数

    二极管的特性 正向 R1 10% 20% 30% 50% 70% 90% Vd/mV 299 543 583 608 627 658 Id/mA 0.01 0.1 0.6 1.4 2.8 7.2 rd ...

  7. navicat15安装以及破解

    一. 下载 链接:https://pan.baidu.com/s/173rqp-DZJ3Om_QNN0NxbEg 提取码:zop2 二. 安装 2.1 解压刚才的文件 2.2 安装navicat15. ...

  8. 一:大数据架构回顾-Lambda架构

    "我们正在从IT时代走向DT时代(数据时代).IT和DT之间,不仅仅是技术的变革,更是思想意识的变革,IT主要是为自我服务,用来更好地自我控制和管理,DT则是激活生产力,让别人活得比你好&q ...

  9. R_回归模型实例一

    工作和生活中存在大量的具有相关性的事件,当找到不同变量之间的关系,我们就会用到回归分析.回归分析(Regression Analysis):是用来确定2个或2个以上变量间关系的一种统计分析方法. 在回 ...

  10. 在Docker内部使用gdb调试器报错-Operation not permitted

    在docker内部使用gdb调试时刻遇到了gdb如下报错信息: warning: Error disabling address space randomization: Operation not ...