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 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)...相关推荐

  1. java题算工资_Java模版方法的小练习——工资系统

    题目要求 解题思路 1.一共涉及了5个类,父类是Employee,父类中有个属性定义的是MyDate类的对象,存储的是生日信息.两个子类HourlyEmployee.SalariedEmployee代 ...

  2. java服务限流_Java实现系统限流

    在微服务系统中,缓存.限流.熔断是保证系统高可用的三板斧,今天我们就来聊聊限流. 限流是保障系统高可用的方式之一,当然啦也是大厂高频面试题,如果阿里的面试官问一句:"如何实现每秒钟1K个请求 ...

  3. java验证码限流_Java实现系统限流

    在微服务系统中,缓存.限流.熔断是保证系统高可用的三板斧,今天我们就来聊聊限流. 限流是保障系统高可用的方式之一,当然啦也是大厂高频面试题,如果阿里的面试官问一句:"如何实现每秒钟1K个请求 ...

  4. java实现咖啡店模拟_Java咖啡厅系统

    [实例简介] 自制的咖啡厅系统 [实例截图] [核心代码] 111 └── 111 ├── bin │   ├── Catalog.class │   ├── CatalogLoader.class ...

  5. java社区源码_Java论坛系统巡云轻论坛 v4.8

    巡云轻论坛系统采用JAVA+MYSQL架构,自适应手机端和电脑端,界面简洁,性能高效.后台数据库备份/还原.全站指定目录打包.一键自动升级等功能使维护简单方便.系统拥有强大的模板管理功能,布局版块支持 ...

  6. java工作流 表设计_Java工作流系统jflow从表功能介绍一

    关键词:工作流快速开发平台  工作流流设计  业务流程管理   asp.net 开源工作流  bpm工作流系统  java工作流主流框架  自定义工作流引擎 表单设计器  流程设计器 从表也叫明细表, ...

  7. java 监控剪切板_Java监视系统剪贴板

    为工作方便写了个小工具,需要监视系统剪贴板,如果文本内容变化,则自动处理并存入剪贴板. FlavorListener仅在剪贴板中的数据类型变化时才生效. 改用ClipboardOwner接口,将它注册 ...

  8. java订单实现的_java订单系统的开发

    问题Exceptioninthread"main"java.lang.NoSuchMethodError:mainPressandkeytocontinue..代码是importj ...

  9. Java排序算快速排序_Java排序算法 [快速排序]

    package cn.com.dom4j.sort; public class QuickSort { /** 快速排序 在 Java中, 快速排序被用作基本数据类型的排序 (当然, 不只快速排序一种 ...

最新文章

  1. 数据库查询 添加伪列
  2. CHUNGHOP k-6868万能空调遥控器的自己家用电器的代码+自己家里的宽带账号+机顶盒型号+桌子+椅子+垫子高度
  3. java 对象访问权限_Java面向对象--访问权限
  4. 【Proteus仿真8086】定时器8253产生波形发生器
  5. HTML代码实现简易购物车-web前端教程
  6. 现代制造技术——金属切削原理
  7. STC15单片机实战项目 - 系统评估
  8. 计算机专业的宣传,计算机专业招生宣传口号
  9. 关于小熊派Cat1资料收集
  10. PAT乙级10019题——C语言
  11. Linux 文件系统
  12. 森锐读卡器连接不上_蓝牙接收器配对不成功的常见问题和解决方案
  13. C语言标准库里的获取时间函数及时间格式转换详解
  14. 怎么用okhttp获得响应头数据
  15. AlphaFold2预测蛋白、肽结构网站简易版教程
  16. linux spec文档解析
  17. CFS调度器负载计算
  18. office在线编辑ONLYOFFICE集成java和前端
  19. RK3399—命令行连接WiFi
  20. JAVA计算机毕业设计宠物寄养管理系统Mybatis+系统+数据库+调试部署

热门文章

  1. win10怎么进入修复计算机,windows10安全模式怎么修复系统_win10安全模式如何修复电脑...
  2. spring整合中application.xml配置
  3. 探寻 Redis 内存诡异增长的元凶
  4. 为什么你应该用Yarn而不是Npm来管理你的项目依赖?
  5. GsonFormat插件
  6. eclipse tomcat插件安装
  7. Pitch,Yaw,Roll的概念
  8. Python的类实例属性访问规则
  9. 胜过对手,先从微笑开始
  10. Linux分区空间不足了怎么办??