专栏首页学习分享-实践为王比较两个时间或者与当前时间相差多少天(多少年月日)
原创

比较两个时间或者与当前时间相差多少天(多少年月日)

package com.test;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

/**

* @description 日期比较天 月 年

* @author www.javawind.net

*/

public class DateTest {

public static void main(String[] args) {

String date = "2008-06-12";

DateTest.compareDate(date, null, 0);

DateTest.compareDate(date, null, 1);

DateTest.compareDate(date, null, 2);

date = "2006-06-03";

DateTest.compareDate(date, null, 0);

DateTest.compareDate(date, null, 1);

DateTest.compareDate(date, null, 2);

DateTest.compareDate(date, "2009-06-01", 0);

DateTest.compareDate(date, "2009-06-01", 1);

DateTest.compareDate(date, "2009-06-01", 2);

}

/**

* @param date1 需要比较的时间 不能为空(null),需要正确的日期格式

* @param date2 被比较的时间 为空(null)则为当前时间

* @param stype 返回值类型 0为多少天,1为多少个月,2为多少年

* @return

*/

public static int compareDate(String date1,String date2,int stype){

int n = 0;

String[] u = {"天","月","年"};

String formatStyle = stype==1?"yyyy-MM":"yyyy-MM-dd";

date2 = date2==null?DateTest.getCurrentDate():date2;

DateFormat df = new SimpleDateFormat(formatStyle);

Calendar c1 = Calendar.getInstance();

Calendar c2 = Calendar.getInstance();

try {

c1.setTime(df.parse(date1));

c2.setTime(df.parse(date2));

} catch (Exception e3) {

System.out.println("wrong occured");

}

//List list = new ArrayList();

while (!c1.after(c2)) { // 循环对比,直到相等,n 就是所要的结果

//list.add(df.format(c1.getTime())); // 这里可以把间隔的日期存到数组中 打印出来

n++;

if(stype==1){

c1.add(Calendar.MONTH, 1); // 比较月份,月份+1

}

else{

c1.add(Calendar.DATE, 1); // 比较天数,日期+1

}

}

n = n-1;

if(stype==2){

n = (int)n/365;

}

System.out.println(date1+" -- "+date2+" 相差多少"+u[stype]+":"+n);

return n;

}

/**

* 得到当前日期

* @return

*/

public static String getCurrentDate() {

Calendar c = Calendar.getInstance();

Date date = c.getTime();

SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");

return simple.format(date);

}

}

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

关注作者,阅读全部精彩内容

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ios 两个时间相差多少天多少小时多少分多少秒

    赵哥窟
  • Hive 时间日期处理总结

    最近用hive比较多,虽然效率低,但是由于都是T+1的业务模式。所以也就不要求太多了,够用就行。其中用的吧比较多就是时间了,由于大数据中很多字段都不是标准的时间...

    用户1217611
  • (95) Java 8的日期和时间API / 计算机程序的思维逻辑

    本节继续探讨Java 8的新特性,主要是介绍Java 8对日期和时间API的增强,关于日期和时间,我们在之前已经介绍过两节了,32节介绍了Java 1.8以前的...

    swiftma
  • 哈哈哈,发年终奖啦,我要去斗鱼打赏最喜欢的妹子~

    为了让你们这些 lsp 少踩点坑,小方同学思索许久才想到这个标题,我真是煞费苦心啊。

    范蠡
  • Power Query里计算两个日期的间隔天数、年龄

    由于PQ里没有类似Excel中的Datedif函数,因此,在PQ中计算常用的间隔天数、年数(年龄),跟在Excel里有所不同。

    大海Power
  • java关于时间比较|String转Date|Date转String|指定时间加上指定天数后的日期|当时时间加上指定天数后的日期等的方法

    但是都比较杂,看着很累,我呢就提取了一些精华的部分和经常用到的一些时间比较,其中包括

    小小鱼儿小小林
  • 由浅入深,走进中级工程师都未必知道的 JavaScript 时间处理冷知识

    在过去,世界各地都各自订定当地时间,例如我国古代将一昼夜分为十二时辰,每一时辰相当于现代的两个小时。但随着交通和通信的发达,各地交流日益频繁,不同的地方时间给人...

    wade
  • Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下?

    当前时间:2019年10月24日。距离 JDK 14 发布时间(2020年3月17日)还有多少天?

    未读代码
  • Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下?

    JDK 8 已经在 2014年 3月 18日正式可用 ,距离现在已经 5年多时间过去了。5年时间里很多企业也都换上了 JDK 8,明年 3月份 Jdk14 也要...

    Java_老男孩
  • (32) 剖析日期和时间 / 计算机程序的思维逻辑

    本节和下节,我们讨论在Java中如何进行日期和时间相关的操作。 日期和时间是一个比较复杂的概念,Java API中对它的支持不是特别好,有一个第三方的类库反而特...

    swiftma
  • Java 8新的时间日期库的20个使用示例

    除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用J...

    哲洛不闹
  • 哪里才是中国最热的火炉城市?

    对于全球国土面积居世界前列、拥有至少五种气候类型(18种细分类型)的中国而言,这个问题确实不好回答。

    华章科技
  • 时间与日期处理

    主要有以下类: NSDate -- 表示一个绝对的时间点 NSTimeZone -- 时区信息 NSLocale -- 本地化信息 NSDateCompone...

    猿人谷
  • Java8新特性之日期、时间操作

    java.time包中的是类是不可变且线程安全的。新的时间及日期API位于java.time中,下面是一些关键类

    Remember_Ray
  • time date datetme timestamp 傻傻分不清楚

    时间格式对于任何一个工程师来说都是绕不开的知识,爬虫工程师同样如此。爬虫工程师要将不同网站的相同类型内容存放在同一个数据表当中,常见的有:

    崔庆才
  • 加速扩产、业绩暴涨,新五丰养猪股价值需要被重估

    猪价又反弹了。据公开数据,6月29日全国农产品批发市场猪肉平均价格为每公斤45.45元,一个月前,这个价格还是38.65元。一个月时间,猪价又回到了高位,且持续...

    刘旷
  • JDK8这样处理日期,效率绝对提升,逼格必然翻倍!

    开发过程中,经常需要为过生日的用户送上一些祝福,例如,用户的生日为1990-10-12,如果今天是2016-10-12,那么今天就是用户的生日(按公历/身份证日...

    程序员小明
  • KDD CUP 2018 前4 名解决方案公开: AI预测空气质量

    今年的KDD将关注空气质量问题。在过去几年中,空气质量问题已经影响了很多发展中国家的大城市。2011年,康奈尔大学空气质量专家Dane Westerdahl在接...

    机器学习AI算法工程
  • SQL基础日期函数

    用户1112962

扫码关注云+社区

领取腾讯云代金券