获取前(后)x月的日期
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月的日期的更多相关文章
- js获取前几个月的具体日期
// 往前数monthNum月份,不能往后数monthNum getPreMonthDay("2018-12-28",20) // 往前数monthNum月份,不能往后数month ...
- js获取前之前或之后的日期
function fun_date(aa){ var date1 = new Date(), time1=date1.getFullYear()+"-"+(date1.getMon ...
- 用javascript写一个显示时间差 几分钟前 几小时前 几天前 几周前 大于一个月显示日期
window.onload = function(){ var show_times = $(".times span"); for(var i=0;i<show_times ...
- python获取当前日期前后N天或N月的日期
# -*- coding: utf-8 -*- '''获取当前日期前后N天或N月的日期''' from time import strftime, localtime from datetime im ...
- python里如何获取当前日期前后N天或N月的日期
#!/usr/bin/python#_*_ coding:UTF-8_*_ import timeimport datetimeimport mathimport calendar ''' time. ...
- 【python】python获取当前日期前后N天或N月的日期
# -*- coding: utf- -*- '''获取当前日期前后N天或N月的日期''' from time import strftime, localtime from datetime imp ...
- PHP获取指定时间的前6个月月份 、获取前6天日期
//获取前6个月月份 public function to_sex_month(){ $today = input('param.today') ? input('param.today') : da ...
- php获取前一天,前一个月,前一年的时间
获取前一天的时间: $mytime= date("Y-m-d H:i:s", strtotime("-1 day")); 获取三天前的时间: $mytime= ...
- php 基础 php获取前一天,前一个月,前一年的时间
获取前一天的时间: $mytime= date("Y-m-d H:i:s", strtotime("-1 day")); $mytime=mktime(0, 0 ...
- js控制日期的前或后N天,前或后一个月
/*获取指定日期前或者后指定间隔时间* sdate:指定日期* interval:时间间隔* caret:间隔符*/function getNowFormatDate(sdate,interval,c ...
随机推荐
- 拒绝双写:巧用Lindorm数据订阅
简介: 本文介绍了双写场景的一致性问题,详细介绍了三种解决方案,并针对DB->Binlog->Kafka方案给出了Lindorm数据订阅的最佳实践 双写问题介绍 双写问题(Dual Wr ...
- 通用的 AI prompt 实操技巧
1. 提供清晰.具体的目标在 Prompt 中明确指出你希望 AI 辅助完成的具体任务,包括要实现的功能.遵循的标准.适用的技术栈等. 2. 提供足够的上下文提供与任务相关的背景信息.现有代码片段.接 ...
- [GPT] golang代码组织的核心思想
1/golang代码组织的核心思想 Go语言(Golang)在代码组织上的核心思想是模块化和封装,主要体现在以下几个方面: 1.包(Packages): Go语言通过包(Packages)来组织代码, ...
- WPF 已知问题 BitmapDecoder.Create 不支持传入 Asynchronous 的文件流
这是在 GitHub 上有小伙伴报的问题,在 WPF 中,不支持调用 BitmapDecoder.Create 方法,传入的 FileStream 是配置了 FileOptions.Asynchron ...
- 推荐一款轻量级堡垒机系统让你防护“rm -rf 删库跑路”
大家好,我是 Java陈序员. 我们在开发工作中,会经常与服务器打交道,而服务器的资源又是十分宝贵,特别是服务器里面的数据资源. 但是,偶尔会经常因为疏忽而导致服务器数据资源丢失,给自己和公司带来巨大 ...
- go http请求如果参数中带有"等特殊字符,参数传输可能会出现问题
编码完整的URL url.QueryEscape(urlStr) 编码完整的URL 如果我们要对完整的 URL 进行编码呢? 就是PHP中 urlencode() 函数的功能. 在 GO 语言下可以直 ...
- Triton 源码初步研读
一.核心接口形态 def jit( fn: Optional[T] = None, *, version=None, do_not_specialize: Optional[Iterable[int] ...
- Linux中文件的隐藏属性
在Linux系统中,可以使用chattr与lsattr来操作文件的隐藏属性.
- Swift中的变量与常量
在Swift里面,声明变量用关健字var,声明常量用关健字let.虽然仅仅是声明变量这样的简单功能,但是还是有需要注意的地方. 变量和常量使用之前必须有一次赋值 var a: Int let b: I ...
- VueJS和Javascript实现文字上下滚动效果
一提到文字上下滚动,我们就会想到用不同的程序去实现,而且页面中有文字滚动会增加这个网页的互动和可信度. 1.Js最简单的方法是控制盒子的高度,使不断的重复添加 <html> <bod ...