/*** 从当前日期算起,获取N天前的日期(当前日不算在内),日期格式为yyyy-MM-dd* * @param daily 天数* @return */public static String getDateByDay(Integer daily) {Date date = new Date();int year = Integer.parseInt(new SimpleDateFormat("yyyy").format(date));int month = Integer.parseInt(new SimpleDateFormat("MM").format(date));int day = Integer.parseInt(new SimpleDateFormat("dd").format(date)) - daily;if (day < 1) {month -= 1;if (month == 0) {year -= 1;month = 12;}if (month == 4 || month == 6 || month == 9 || month == 11) {day = 30 + day;} else if (month == 1 || month == 3 || month == 5 || month == 7|| month == 8 || month == 10 || month == 12) {day = 31 + day;} else if (month == 2) {if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {day = 29 + day;}else {day = 28 + day;}}}String y = year + "";String m = "";String d = "";if (month < 10) {m = "0" + month;} else {m = month + "";}if (day < 10) {d = "0" + day;} else {d = day + "";}return y + "-" + m + "-" + d;}/*** 从当前日期算起,获取N个月前的日期,日期格式为yyyy-MM-dd* * @param mon 月份* @return*/public static String getDateByMonth(Integer mon) {Date date = new Date();int year = Integer.parseInt(new SimpleDateFormat("yyyy").format(date));int month = Integer.parseInt(new SimpleDateFormat("MM").format(date)) - mon;int day = Integer.parseInt(new SimpleDateFormat("dd").format(date));if (month == 0) {year -= 1;month = 12;} else if (day > 28) {if (month == 2) {if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {day = 29;} else {day = 28;}} else if ((month == 4 || month == 6 || month == 9 || month == 11)&& day == 31) {day = 30;}}String y = year + "";String m = "";String d = "";if (month < 10) {m = "00" + month;} else {m = month + "";}if (day < 10) {d = "0" + day;} else {d = day + "";}return y + "-" + m + "-" + d;}
从当前日期算起,获取几天前的日期和几个月前的日期
相关文章:

清华大学人工智能研究院成立听觉智能研究中心,将专注基础研究和成果产业化
4月22日,清华大学人工智能研究院听觉智能研究中心(以下简称听觉中心)成立仪式暨学术前沿报告会在清华大学FIT楼举行。 清华大学副校长、人工智能研究院管委会主任尤政院士在致辞中表示,成立听觉中心是清华大学加速推进人工智能发…

两道面试题,带你解析Java类加载机制
2019独角兽企业重金招聘Python工程师标准>>> 在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa {static{System.out.println("爷爷在静态代码块");} } class Father extend…

【Qt】监视文件和目录的修改:QFileSystemWatcher
一、说明 QFileSystemWatcher用于监视指定文件或目录列表的更改。 注意:监视文件或目录时需要打开相应的文件描述符,因此被监视的文件或目录数据是有限的,受系统允许的文件描述符数据等限制。 二、常用成员函数 1、public 构造、析构函数: QFileSystemWatcher(const QS…

asp.net 2.0中新增的AppendDataBoundItems .dropdownlist 添加第一项
在asp.net 2.0中,新增了一个AppendDataBoundItems属性,十分方便,使可以在执行数据绑定之前将项添加到 listcontrol 对象中。执行数据绑定之后,项集合中包含数据源中的项以及以前添加的项。如果不在绑定数据之前清除列表项…

用Python实现OpenCV特征提取与图像检索 | Demo
参加「CTA 核心技术及应用峰会」,请扫码报名 ↑↑↑作者|Andrey Nikishaev翻译 | 张蔚敏审校 | reason_W来源 | Python大本营(id:pythonnews)“拍立淘”“一键识花”“街景匹配”……不知道大家在使用这些神奇的功能的时候&#x…

【ffmpeg】编译时报错:error: undefined reference to `av...
1、问题描述 昨天使用ffmpeg库编译demo一切正常,今天再次链接ffmpeg库时报了一堆错误: error: undefined reference to `av_frame_alloc() error: undefined reference to `avio_close(AVIOContext*) error: undefined reference to `avcodec_find_encoder(AVCodecID) erro…

Spring Initializr 构建Spring Boot/Cloud工程
2019独角兽企业重金招聘Python工程师标准>>> 在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建。而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也可以通过《Sp…

linux下用phpize给PHP动态添加扩展
使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,别说,php还真有这样的功能。 我没有在手册中看到。 如我想增加bcmath支持&…

“996 是福利,007 才是常态”?!千万程序员怒怼每日优鲜!
呔!热度不是你想蹭,想蹭就能蹭……作者 | 仲培艺封图 | CSDN 付费下载自东方IC出品 | 程序人生(ID:coder_life)App Store 评分一日之间从 4.5 断崖直降至 1.5,每日优鲜这是怎么了?究其原因——大…
亚太信息安全领袖成就表彰计划:阿里成中国互联网公司唯一代表
近日,全球最大的信息安全非营利会员组织(ISC)公布了第十二届年度亚太区信息安全领袖成就(亚太区ISLA)表彰计划的获奖者,共有17名人员获得此项殊荣。据悉,(ISC)将于2018年7月9日在香港举行的庆典活动中表彰这17名获奖者…

【C++】clipp 一个命令行参数解析器
1、简介 clipp是一个使用方便、功能强大的命令行解析器,源码只有一个头文件《clipp.h》 github地址:https://github.com/muellan/clipp 2、使用 只演示最简单的例子,更复杂的参见源码中《README.md》。 例如需要如下命令行参数 用法&…

Oracle 聚合函数(Aggregate Functions)说明
Oracle Aggregate Functions用过很多,官网的说明如下:Aggregate Functionshttp://docs.oracle.com/cd/E11882_01/server.112/e26088/functions003.htm#SQLRF20035Aggregatefunctions return a single result row based on groups of rows, rather than o…

【OpenCV】正确创建用于保存YUV420P格式的cv::Mat
1、问题描述 cv::Mat保存RGB24或BRG24格式时,传入宽、高和格式类型CV_8UC3就行了;今天在创建cv::Mat用来保存YUV420P时,有点懵圈了,因为类型是CV_8UC1,直接传宽和高,只能保存Y分量。因此需要宽或者高乘以一…

特斯拉全新自动驾驶芯片最强?英伟达回怼,投资者用脚投票
整理 | 一一出品 | AI科技大本营(ID:rgznai100)马斯克前脚刚说完自家发布的自动驾驶计算机是全球最强,后脚就被英伟达怼了。在刚刚结束的自动驾驶投资者日上,特斯拉发布了全自动驾驶(FSD)计算机(…

2012年我的十大工程9——形象工程
形象对于每一个人来说都很重要,人以群分,物以类聚!说的就是这个道理,不同的人接触不同的社会,不同的级别接触不同的层面。还记得我【千日计划】项目中怎么说的吗?第七项:改良自己的外貌形象。老…

【MySQL】ubuntu16.04安装mysql,然后源码编译Qt5.12.4版本的libqsqlmysql.so
一、Ubuntu16.04.5 安装 MySQL 1、使用apt命令安装 sudo apt install mysql-server安装过程会提示,推荐设置MySQL的root用户密码(注意:这里root不是指ubuntu系统的root) While not mandatory, it is highly recommended that you set a password for the MySQL administr…

A* 算法之父、人工智能先驱Nils Nilsson逝世 | 缅怀
整理 | 琥珀出品 | AI科技大本营(id:rgznai100)2019 年 4 月 23 日,人工智能学科创始研究者之一、斯坦福大学计算机科学系 Kumagai 教授 Nils J. Nilsson 逝世,享年 86 岁。Nils J. Nilsson(1933 年 2 月 6…

类执行方法的过程与运行时
大家都知道,调用一个未声明方法大多数情况下会崩溃,崩溃信息就是unrecognized selector sent to instance;是的,的确大多数情况下是这样的,但是有了运行时就不一定了,这就是我今天的主题——“安全类”(哈哈…

NandFlash系列之一:NorFlash与NandFlash对比
NandFlash系列之一:NorFlash与NandFlash对比作者:刘洪涛,华清远见嵌入式学院高级讲师。FLASH存储器又称闪存,主要有两种:NorFlash和NandFlash,下面我们从多个角度来对比介绍一下。在实际开发中,…

机器学习萌新必备的三种优化算法 | 选型指南
作者 | Nasir Hemed编译 | Rachel出品 | AI科技大本营(id:rgznai100)【导读】在本文中,作者对常用的三种机器学习优化算法(牛顿法、梯度下降法、最速下降法)进行了介绍和比较,并结合算法的数学原…

【MySQL】缩略语PK NN UQ BIN UN ZF AI G、基本操作语句
一、缩略语 PK:primary key 主键 NN:not null 非空 UQ:unique 唯一索引 BIN:binary 二进制数据 UN:unsigned 无符号整数(非负数) ZF:zero fill 填充0 例如字段内容是1 int(4), 则内…

C#(WPF)去除事件中注册的事件处理方法!
在WPF中,移除一个事件中已经注册的处理方法,看似简单,实际还是很痛苦的一件事情。因为C#的灵活性,定义事件的方法也是多种多样。我自己定义了一个事件: public event EventHandler TestEvent; 当我想注销这个事件上注册…

memcached图形界面的监控
wget http://livebookmark.net/memcachephp/memcachephp.zip 前提是已经安装了php和memcached 图形界面的监控是通过memcache.php来实现的, 1.把该php程序拷贝到nginx的html根目录 [rootcacti srv]# cd /usr/local/nginx/html 2. 更改相应的连接IP和端口…

薅百度GPU羊毛!PaddlePaddle大升级,比Google更懂中文,打响AI开发者争夺战
记者 | 阿司匹林出品 | AI科技大本营(ID: rgznai100)深度学习已经推动人工智能进入工业大生产阶段,而深度学习框架则是智能时代的操作系统。在4月23日下午的Wave Summit深度学习开发者峰会上,百度高级副总裁王海峰开场就为深度学习…

vue中axios如何实现token验证
title: vue中axios如何实现token验证 date: 2018-02-08 17:50:07 tags: [axios,vue] 继上篇实现Auth认证之后,然后每个跳转页面都会在后端验证token的存在 然后那天晚上通过模仿Auth发送请求,发送成功(上篇末尾的方式) 但是今天再继续写,发现每个页面请求都要发送token验证 就比…

【视频】视频方面大神博客总结
1、雷霄骅博客 [总结]视音频编解码技术零基础学习方法:雷神对音视频技术的总结,包括:视频播放器原理、流媒体协议、封装格式、视频编码、音频编码、网络视音频平台对比。首先对雷神的顶礼膜拜,学完这篇博客,就算跨入音…

IHttpHandler 在SharePoint中的应用
1. 一个文件名为VCChartHandler.ashx,其文件代码为: <% WebHandler Language"C#" Class"VCSharePoint.BL.VCHandler,VCSharePoint, Version1.0.0.0, Cultureneutral, PublicKeyToken0134fd28ed40d3b2"%>2. 另一个类为VCHandler.cs的文件…

普通人也能用AI拍出3D大片?这位清华博士后这么做
从《阿凡达》到《流浪地球》,从好莱坞科幻 3D 电影之最到中国科幻 3D 电影之最,从 2009 年到 2019 年,近十年的岁月,见证了中国 3D 影视制作的快速成长和繁盛,也刺激着赵天奇探索人工智能与影视制作结合应用的信心。影…

[asp.net core]SignalR一个例子
摘要 在一个后台管理的页面想实时监控一些操作的数据,想到用signalR。 一个例子 asp.net coresignalR 使用Nuget安装包:Microsoft.AspNetCore.SignalR 在StartUp中启用signalR // This method gets called by the runtime. Use this method to add serv…

【FFmpeg】截至ffmpeg4.2不推荐(Deprecate)继续使用的接口,以及代替它的接口汇总
1、问题描述 使用ffmpeg库写程序,编译时,经常报警告“xxx is deprecated” 查看源码时,该接口或结构体字段被标记attribute_deprecated,表示它已经过时,不推荐使用。 如: attribute_deprecated void avcodec_register(AVCodec *codec);attribute_deprecated void avcod…