输入02月28日-03月05日的日期格式计算出两个日期之间相隔的天数

     /*** 计算两个日期之间相隔的天数* @param date 日期* @return 相隔的天数*/public static int dayCompute(String date) {String[] split = date.split("-");String month_1 = "", month_2 = "", day_1 = "", day_2 = "";int differenceDay = 0;for (int u = 0; u < split.length; u++) {String[] split_1 = split[u].split("月");for (int i = 0; i < split_1.length; i++) {if (u == 0) {if (i == 0) {month_1 = split_1[i];} else {if (split_1[i].contains("日")) {String[] split_2 = split_1[i].split("日");for (int o = 0; o < split_2.length; o++) {day_1 = split_2[o];}}}} else {if (i == 0) {month_2 = split_1[i];} else {if (split_1[i].contains("日")) {String[] split_2 = split_1[i].split("日");for (int o = 0; o < split_2.length; o++) {if (o == 0) {day_2 = split_2[o];}}}}}}}if (month_1.equals(month_2) && !(month_1.equals("") && month_2.equals(""))) {differenceDay = (Integer.parseInt(day_2) - Integer.parseInt(day_1)) + 1;} else {if (!(month_1.equals("") && month_2.equals(""))) {int tempDay_1 = getDays(month_1);int differenceDay_1 = tempDay_1 - Integer.parseInt(day_1) + 1;differenceDay = differenceDay_1 + Integer.parseInt(day_2);}}return differenceDay;}public static int getDays(String month) {int day;switch (month) {case "01": case "03": case "05": case "07": case "08": case "10": case "12":day = 31;break;case "04":  case "06": case "09": case "11":day = 30;break;case "02":Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.YEAR);if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {day = 29;} else {day = 28;}break;default:day = 0;}return day;}

因业务需要查当月、上个月、上上个月的相关数据。

代码:

import java.text.SimpleDateFormat;
import java.util.*;public class Test {public static void main(String[] args){Date date = new Date();String endDate = dateReplace(date,-2);System.out.println(endDate);        String startDate = stringReplace(endDate);System.out.println(startDate);}static private String dateReplace(Date date,int addNumber){SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");GregorianCalendar gc = new GregorianCalendar();gc.setTime(date);//2代表月份的意思,addNumber代表在当前的日期添加或减去一个月gc.add(2, addNumber);gc.set(gc.get(Calendar.YEAR), gc.get(Calendar.MONTH), gc.get(Calendar.DATE));return dateFormat.format(gc.getTime());}static private String stringReplace(String string){StringBuilder stringBuilder = new StringBuilder(string);return stringBuilder.replace(8,10,"01").toString();}}

结果:

java 计算月份和日期相关推荐

  1. Java 计算两个日期相减并转换成月份

    来自:https://www.shixinwl.com/article/132 Java 计算两个日期相减并转换成月份 在网上找了很多类似方法结果都是垃圾,于是乎记录下来给需要的人 import ja ...

  2. Java计算时间差、日期差总结(亲测)

    Java计算时间差.日期差总结 最近工作中遇到需要计算时间差,搜索了几种计算时间差的方法,这里总结一下 1.java 7中的日历类Calendar Calendar类使用其静态的getInstance ...

  3. java计算月份所在的季度

    java计算月份所在的季度:(月份+2)/ 3 下班的时候无意中看到同事写的根据月份计算季度的代码: /*** 获取两个时间内的季度集合* 返回结果说明 quarterList1["2019 ...

  4. Java计算时间差、日期差总结

    Java计算时间差.日期差总结 最近工作中遇到需要计算时间差,搜索了几种计算时间差的方法,这里总结一下 1.java 7中的日历类Calendar Calendar类使用其静态的getInstance ...

  5. JAVA计算两个日期相差多少天

    前言 有时候我们在JAVA中会比较两个日期相差多少天,这里有几个实现方法供大家参考,偶尔会用到,也当做自己收藏.btw,同时也要鄙视一下我的好基友从百度搜到的一个答案的作者,写了毒代码,计算个日期而已 ...

  6. java计算两个日期之间天数

    java计算两个日期之间天数 jxts = DateFunction.getNumberOfDays(jxErq, qsjxrq); public static long getNumberOfDay ...

  7. Java计算两个日期的相差天数以及除去双休日的相差天数

    Java计算两个日期的相差天数 计算两个日期相差天数 Java1.8新类LocalDateTime 计算相差天数 计算两个日期相差天数(除去双休日) 计算两个日期相差天数 Java1.8新类Local ...

  8. java计算两个日期之间的月份差

    需求:计算两个日期之间相差几个月份 说明:适用于yyyyMMdd.yyyy-MM-dd.yyyy/MM/dd.yyyyMM.yyyy-MM.yyyy/MM格式的日期 package demo;impo ...

  9. java计算两个日期之间的天数(java计算两个日期之间的天数算法)

    两个日期之间的天数要怎么计算? 两个日期之间的天数的计算=日期相减+1.比如:六月一号到六月三号,这之间是3天,分别是:一号.二号.三号,算式:3-1+1=3(天).同理,2001年到2002年是2年 ...

最新文章

  1. Leetcode1695. 删除子数组的最大得分[C++题解]:双指针、区间内元素不能重复
  2. robotium诡异的Instrumentation run failed due to 'java.lang.ClassNo
  3. hibernate 中id生成策略
  4. 各个硬件指令集使用简单介绍
  5. Educational Codeforces Round 17 E. Radio stations cdq分治 + 树状数组
  6. 谈谈基于SQL Server 的Exception Handlingp[下篇]
  7. 五年了,你还在用junit4吗?
  8. java yield方法_Java中的yield方法
  9. tensorflow精进之路(二十二)——使用slim模型对图像识别与检测(下)(VGG19模型)
  10. 简易python爬虫 - 爬取站长论坛信息
  11. php怎么联网,家庭宽带上网连接方式
  12. 计算两个时间相差多少时间--天、小时、分、秒
  13. html中添加ie兼容性视图,IE11浏览器添加到兼容性视图中的网站无法保存怎么办?...
  14. 决策树ID3代码(Python)
  15. 判断处理器是大端模式还是小端模式
  16. 程序员的5个级别,你属于哪一个等级?
  17. Spring面试题(一)
  18. 带有详细书签的IT电子书大全
  19. dhcp服务器(dhcp服务器怎么设置)
  20. std::wstring std::wstring::sizetype wstring::npos 简单示例介绍

热门文章

  1. 【转自JULY大佬】程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦
  2. php 拼团_详解在微信公众平台里实现微信拼团功能的步骤
  3. 软件的接口设计图_面向服务架构(SOA)的汽车软件分析和设计
  4. 一级网站域名与二级域名的区别,如何注册网站一级域名
  5. 一、PHP基础-安装PHP集成环境
  6. 欧几里得定理与扩展欧几里得定理
  7. 【C++学习笔记】标准库类型string
  8. 区分微信小程序版本(开发工具中、开发版、体验版、正式版)的方法?
  9. android什么意思!读完我这份《Android开发核心源码精编解析》面试至少多要3K!面试建议
  10. 手机厂商“卷”到了手腕上