博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
时间计算工具整理
阅读量:6634 次
发布时间:2019-06-25

本文共 5095 字,大约阅读时间需要 16 分钟。

package com.huangshan.gjj.utils;

import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;

/**

  • 文件描述:

  • 作者:Administrator

  • 创建时间:2018/8/27

  • 更改时间:2018/8/27

  • 类功能:1

*/

public class TimeCalUtils { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); private static Calendar startDate = Calendar.getInstance(); private static Calendar endDate = Calendar.getInstance(); private static DateFormat df = DateFormat.getDateInstance(); private static Date earlydate = new Date(); private static Date latedate = new Date();

/** * 计算两个时间相差多少个年 * * @return * @throws ParseException */public static int yearsBetween(String start, String end) {    try {        startDate.setTime(sdf.parse(start));        endDate.setTime(sdf.parse(end));        return (endDate.get(Calendar.YEAR) - startDate.get(Calendar.YEAR));    } catch (ParseException e) {        return -2;    }}/** * 计算两个时间相差多少个月 * * @return int * @throws ParseException */public static int monthsBetween(String start, String end) throws ParseException {    startDate.setTime(sdf.parse(start));    endDate.setTime(sdf.parse(end));    int result = yearsBetween(start, end) * 12 + endDate.get(Calendar.MONTH) - startDate.get(Calendar.MONTH);    return result == 0 ? 1 : Math.abs(result);}/** * 计算两个时间相差多少个天 * * @return * @throws ParseException */public static int daysBetween(String start, String end) throws ParseException {    // 得到两个日期相差多少天    return hoursBetween(start, end) / 24;}/** * 计算两个时间相差多少小时 * * @throws ParseException */public static int hoursBetween(String start, String end) throws ParseException {    // 得到两个日期相差多少小时    return minutesBetween(start, end) / 60;}/** * 计算两个时间相差多少分 * * @throws ParseException */public static int minutesBetween(String start, String end) throws ParseException {    // 得到两个日期相差多少分    return secondesBetween(start, end) / 60;}/** * 计算两个时间相差多少秒 * * @return * @throws ParseException */public static int secondesBetween(String start, String end) throws ParseException {    earlydate = df.parse(start);    latedate = df.parse(end);    startDate.setTime(earlydate);    endDate.setTime(latedate);    // 设置时间为0时    startDate.set(Calendar.HOUR_OF_DAY, 0);    startDate.set(Calendar.MINUTE, 0);    startDate.set(Calendar.SECOND, 0);    endDate.set(Calendar.HOUR_OF_DAY, 0);    endDate.set(Calendar.MINUTE, 0);    endDate.set(Calendar.SECOND, 0);    // 得到两个日期相差多少秒    return ((int) (endDate.getTime().getTime() / 1000) - (int) (startDate.getTime().getTime() / 1000));}复制代码

} package com.huangshan.gjj.utils;

import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;

/**

  • 文件描述:

  • 作者:Administrator

  • 创建时间:2018/8/27

  • 更改时间:2018/8/27

  • 类功能:1

*/

public class TimeCalUtils { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); private static Calendar startDate = Calendar.getInstance(); private static Calendar endDate = Calendar.getInstance(); private static DateFormat df = DateFormat.getDateInstance(); private static Date earlydate = new Date(); private static Date latedate = new Date();

/** * 计算两个时间相差多少个年 * * @return * @throws ParseException */public static int yearsBetween(String start, String end) {    try {        startDate.setTime(sdf.parse(start));        endDate.setTime(sdf.parse(end));        return (endDate.get(Calendar.YEAR) - startDate.get(Calendar.YEAR));    } catch (ParseException e) {        return -2;    }}/** * 计算两个时间相差多少个月 * * @return int * @throws ParseException */public static int monthsBetween(String start, String end) throws ParseException {    startDate.setTime(sdf.parse(start));    endDate.setTime(sdf.parse(end));    int result = yearsBetween(start, end) * 12 + endDate.get(Calendar.MONTH) - startDate.get(Calendar.MONTH);    return result == 0 ? 1 : Math.abs(result);}/** * 计算两个时间相差多少个天 * * @return * @throws ParseException */public static int daysBetween(String start, String end) throws ParseException {    // 得到两个日期相差多少天    return hoursBetween(start, end) / 24;}/** * 计算两个时间相差多少小时 * * @throws ParseException */public static int hoursBetween(String start, String end) throws ParseException {    // 得到两个日期相差多少小时    return minutesBetween(start, end) / 60;}/** * 计算两个时间相差多少分 * * @throws ParseException */public static int minutesBetween(String start, String end) throws ParseException {    // 得到两个日期相差多少分    return secondesBetween(start, end) / 60;}/** * 计算两个时间相差多少秒 * * @return * @throws ParseException */public static int secondesBetween(String start, String end) throws ParseException {    earlydate = df.parse(start);    latedate = df.parse(end);    startDate.setTime(earlydate);    endDate.setTime(latedate);    // 设置时间为0时    startDate.set(Calendar.HOUR_OF_DAY, 0);    startDate.set(Calendar.MINUTE, 0);    startDate.set(Calendar.SECOND, 0);    endDate.set(Calendar.HOUR_OF_DAY, 0);    endDate.set(Calendar.MINUTE, 0);    endDate.set(Calendar.SECOND, 0);    // 得到两个日期相差多少秒    return ((int) (endDate.getTime().getTime() / 1000) - (int) (startDate.getTime().getTime() / 1000));}复制代码

}

转载地址:http://egbvo.baihongyu.com/

你可能感兴趣的文章
01背包问题
查看>>
treer:命令行生成目录结构的实用小工具
查看>>
RHEL 7配置NFS服务笔记
查看>>
【Servlet】04-使用Session
查看>>
我们该如何做好Code Review?
查看>>
padStart 的 polyfill
查看>>
IBM发布全球首台商用量子计算机
查看>>
教育部下令中小学推广编程教育,全民AI真的要来了
查看>>
面向桌面开发的Windows Template Studio
查看>>
Atlassian的Stash数据中心为Git提供了高可用性及可伸缩性
查看>>
微软混合现实设备HoloLens 2惊艳发布,售价2.4万人民币
查看>>
试探API Blueprint接口文档生成和接口模拟
查看>>
使用 Scrum开发太阳能汽车
查看>>
「又拍云 Open Talk」分享:SAY清风—创业公司如何做管理
查看>>
码农养成记3——关于Clone的深复制,还有浅复制
查看>>
Spring Cloud微服务分布式云架构-集成项目
查看>>
我,兰兰与春天
查看>>
迈出黑客第一步, 安装配置Kali虚拟机
查看>>
给妹子讲python-S01E11赋值与对象拷贝
查看>>
禅与 JavaScript 编程艺术, Zen and The Art of JavaScript Programming
查看>>