package com.date;
02
03
import java.text.ParseException;
04
import java.text.SimpleDateFormat;
05
import java.util.Date;
06
07
public class RelativeDateFormat {
08
09
private static final long ONE_MINUTE = 60000L;
10
private static final long ONE_HOUR = 3600000L;
11
private static final long ONE_DAY = 86400000L;
12
private static final long ONE_WEEK = 604800000L;
13
14
private static final String ONE_SECOND_AGO = "秒前";
15
private static final String ONE_MINUTE_AGO = "分钟前";
16
private static final String ONE_HOUR_AGO = "小时前";
17
private static final String ONE_DAY_AGO = "天前";
18
private static final String ONE_MONTH_AGO = "月前";
19
private static final String ONE_YEAR_AGO = "年前";
20
21
public static void main(String[] args) throws ParseException {
22
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:m:s");
23
Date date = format.parse("2013-11-11 18:35:35");
24
System.out.println(format(date));
25
}
26
27
public static String format(Date date) {
28
long delta = new Date().getTime() - date.getTime();
29
if (delta < 1L * ONE_MINUTE) {
30
long seconds = toSeconds(delta);
31
return (seconds <= 0 ? 1 : seconds) + ONE_SECOND_AGO;
32
}
33
if (delta < 45L * ONE_MINUTE) {
34
long minutes = toMinutes(delta);
35
return (minutes <= 0 ? 1 : minutes) + ONE_MINUTE_AGO;
36
}
37
if (delta < 24L * ONE_HOUR) {
38
long hours = toHours(delta);
39
return (hours <= 0 ? 1 : hours) + ONE_HOUR_AGO;
40
}
41
if (delta < 48L * ONE_HOUR) {
42
return "昨天";
43
}
44
if (delta < 30L * ONE_DAY) {
45
long days = toDays(delta);
46
return (days <= 0 ? 1 : days) + ONE_DAY_AGO;
47
}
48
if (delta < 12L * 4L * ONE_WEEK) {
49
long months = toMonths(delta);
50
return (months <= 0 ? 1 : months) + ONE_MONTH_AGO;
51
} else {
52
long years = toYears(delta);
53
return (years <= 0 ? 1 : years) + ONE_YEAR_AGO;
54
}
55
}
56
57
private static long toSeconds(long date) {
58
return date / 1000L;
59
}
60
61
private static long toMinutes(long date) {
62
return toSeconds(date) / 60L;
63
}
64
65
private static long toHours(long date) {
66
return toMinutes(date) / 60L;
67
}
68
69
private static long toDays(long date) {
70
return toHours(date) / 24L;
71
}
72
73
private static long toMonths(long date) {
74
return toDays(date) / 30L;
75
}
76
77
private static long toYears(long date) {
78
return toMonths(date) / 365L;
79
}
80
81
}
分享到:
相关推荐
JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...
Java 请假天数计算工具类是企业信息化管理中常见的需求,尤其在OA(办公自动化)系统中,用于准确计算员工的假期天数。这个工具类的设计通常涉及到日期处理、工作日计算以及根据公司规则进行调整等多个方面。在这个...
[工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt [工具类] MD5超强化版 .java.txt [工具类] XML 实用工具类 .java...
这篇博客文章“java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒”提供了一个实用的工具类,帮助开发者更方便地处理日期和时间差异。下面将详细解释这个工具类中的关键知识点。 1. **Java...
Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...
[工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt [工具类] MD5超强化版 .java.txt [工具类] XML 实用工具类 .java...
Java操作时间工具类是开发者日常工作中经常会用到的模块,特别是在处理日期和时间相关的业务逻辑时。本工具类主要是为了方便地对日期和时间进行格式化、比较、计算等操作,提高开发效率。下面我们将详细探讨Java中...
2.[工具类] Java中计算任意两个日期之间的工作天数 .java 3.[工具类] MD5 .java 4.[工具类] 时间工具TimeUtil.java 5.[工具类] 通信服务端simpleServer 6.[工具类] 使用Java程序来实现HTTP文件的队列下载 .java 7....
在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...
本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...
日期工具类可以帮助我们进行日期时间的格式化、比较、计算等操作。例如,`LocalDate`、`LocalTime`和`LocalDateTime`类提供了强大的API来处理日期和时间。 2. **字符串工具类**: 字符串是编程中最常见的数据类型...
Java 日期比较工具类 各种日期操作及计算( 获取两个日期 间隔天数 间隔月数 格式化日期 )
在Java编程语言中,工具类(Utils)是包含各种实用方法的类,这些方法通常用于执行常见的任务,如类型转换、字符串操作、集合处理等。它们使得代码更加简洁且易于维护,因为它们提供了通用功能的封装,避免了重复...
在Java开发中,工具类是程序员经常会用到的代码库,它们提供了许多便捷的方法,以简化常见的编程任务。本文将详细解析"java开发常用工具类"中的关键知识点,包括日历、时间处理、Excel导出、网络请求、流操作、数据...
26. **DateTimeUtil类**:日期时间工具类,可能包含日期时间的转换、格式化等方法。 27. **TypeConverter类**:数据类型转换工具类,方便不同类型的相互转换。 28. **StringUtils类**:字符串操作的扩展工具类,...
时间类型方面很好用的工具类,包括时间类型的转化与计算等
各种日期格式,时间戳,时间计算的相互转换。直接引入工程中,可使用
- `java.util`: 这个包中包含了大量工具类,如`ArrayList`, `HashMap`, `LinkedList`等集合框架类,以及`Date`, `Calendar`时间处理类,`Random`随机数生成器等。 - `java.text`: 提供了`SimpleDateFormat`进行...
在Java编程语言中,处理日期和...总之,一个良好的日期时间工具类应该简化日期时间的常见操作,提高代码的可读性和可维护性。在Java 8及更高版本中,可以考虑利用`java.time`包提供的新特性来进一步优化工具类的设计。
在给定的压缩包文件中,我们可以看到一个名为"util"的工具类,这是用来计算XIRR的核心组件。这个工具类很可能包含了计算XIRR所需的关键算法和方法。下面,我们将深入探讨XIRR的计算原理和如何利用编程实现。 1. **...