java日期算前一天_java 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)...
1.情景展示
java 根据系统当前日期获取前一天日期、后一天日期,或者根据初始日期推算出期望(向前/向后)日期。
2.解决方案
导包
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
方法一:
/**
* 根据初始日期推算期望(向前/向后)日期
* @param initTime
* 初始日期(initTime可以是null、Date、String数据类型)
* @param n
* 向前/向后推算n天(n可以是正整数、0、负整数)
* @return
* 推算后的日期字符串
*/
public static String getCalculateDay(Object initTime,int n){
// 返回推算后的日期
String calculateDay = "";
try {
// 实例化日历类Calendar
Calendar calendar = Calendar.getInstance();
// 定义日期格式化样式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 初始日期
Date initDate = null;
// 判断参数类型
if (null == initTime) {
// 取系统当前时间
initDate = new Date();
} else if (initTime instanceof Date) {
initDate = (Date)initTime;
} else {
// 日期格式字符串转换成日期类Date
initDate = sdf.parse((String)initTime);
}
// 设置日历时间
calendar.setTime(initDate);
// 设置推算后的日历时间
calendar.add(Calendar.DATE, n);
// 获取推算后的日期
Date calculateDate = calendar.getTime();
// 进行格式化
calculateDay = sdf.format(calculateDate);
} catch(ParseException e) {
e.printStackTrace();
}
return calculateDay;
}
方法二:
/**
* 根据初始日期推算期望(向前/向后)日期
* @param initTime
* 初始日期
* @param n
* 向前/向后推算n天
* @return
* 推算后的日期
*/
public static String getCalculateDay2(Object initTime,int n) throws ParseException{
// 返回推算后的日期
String calculateDay = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 初始日期
Date initDate = null;
if (null == initTime)
initDate = new Date();
else if (initTime instanceof Date)
initDate = (Date)initTime;
else
initDate = sdf.parse((String)initTime);
// 转换成距离1970年0时0分的毫秒数
Long initMilliSeconds = initDate.getTime();
// 一天代表的毫秒数
int oneDayTime = 24 * 60 * 60 * 1000;
initMilliSeconds += oneDayTime * n;
// 推算出的日期
Date calculateDate = new Date(initMilliSeconds);
calculateDay = sdf.format(calculateDate);
return calculateDay;
}
3.测试
public static void main(String[] args) throws ParseException {
// 获取后一天所在日期
System.out.println(getCalculateDay(null,1));// 2019-04-09
System.out.println(getCalculateDay2(null,1));// 2019-04-09
}
java日期算前一天_java 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)...相关推荐
- java题算工资_Java模版方法的小练习——工资系统
题目要求 解题思路 1.一共涉及了5个类,父类是Employee,父类中有个属性定义的是MyDate类的对象,存储的是生日信息.两个子类HourlyEmployee.SalariedEmployee代 ...
- java服务限流_Java实现系统限流
在微服务系统中,缓存.限流.熔断是保证系统高可用的三板斧,今天我们就来聊聊限流. 限流是保障系统高可用的方式之一,当然啦也是大厂高频面试题,如果阿里的面试官问一句:"如何实现每秒钟1K个请求 ...
- java验证码限流_Java实现系统限流
在微服务系统中,缓存.限流.熔断是保证系统高可用的三板斧,今天我们就来聊聊限流. 限流是保障系统高可用的方式之一,当然啦也是大厂高频面试题,如果阿里的面试官问一句:"如何实现每秒钟1K个请求 ...
- java实现咖啡店模拟_Java咖啡厅系统
[实例简介] 自制的咖啡厅系统 [实例截图] [核心代码] 111 └── 111 ├── bin │ ├── Catalog.class │ ├── CatalogLoader.class ...
- java社区源码_Java论坛系统巡云轻论坛 v4.8
巡云轻论坛系统采用JAVA+MYSQL架构,自适应手机端和电脑端,界面简洁,性能高效.后台数据库备份/还原.全站指定目录打包.一键自动升级等功能使维护简单方便.系统拥有强大的模板管理功能,布局版块支持 ...
- java工作流 表设计_Java工作流系统jflow从表功能介绍一
关键词:工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 bpm工作流系统 java工作流主流框架 自定义工作流引擎 表单设计器 流程设计器 从表也叫明细表, ...
- java 监控剪切板_Java监视系统剪贴板
为工作方便写了个小工具,需要监视系统剪贴板,如果文本内容变化,则自动处理并存入剪贴板. FlavorListener仅在剪贴板中的数据类型变化时才生效. 改用ClipboardOwner接口,将它注册 ...
- java订单实现的_java订单系统的开发
问题Exceptioninthread"main"java.lang.NoSuchMethodError:mainPressandkeytocontinue..代码是importj ...
- Java排序算快速排序_Java排序算法 [快速排序]
package cn.com.dom4j.sort; public class QuickSort { /** 快速排序 在 Java中, 快速排序被用作基本数据类型的排序 (当然, 不只快速排序一种 ...
最新文章
- 数据库查询 添加伪列
- CHUNGHOP k-6868万能空调遥控器的自己家用电器的代码+自己家里的宽带账号+机顶盒型号+桌子+椅子+垫子高度
- java 对象访问权限_Java面向对象--访问权限
- 【Proteus仿真8086】定时器8253产生波形发生器
- HTML代码实现简易购物车-web前端教程
- 现代制造技术——金属切削原理
- STC15单片机实战项目 - 系统评估
- 计算机专业的宣传,计算机专业招生宣传口号
- 关于小熊派Cat1资料收集
- PAT乙级10019题——C语言
- Linux 文件系统
- 森锐读卡器连接不上_蓝牙接收器配对不成功的常见问题和解决方案
- C语言标准库里的获取时间函数及时间格式转换详解
- 怎么用okhttp获得响应头数据
- AlphaFold2预测蛋白、肽结构网站简易版教程
- linux spec文档解析
- CFS调度器负载计算
- office在线编辑ONLYOFFICE集成java和前端
- RK3399—命令行连接WiFi
- JAVA计算机毕业设计宠物寄养管理系统Mybatis+系统+数据库+调试部署