`
pure
  • 浏览: 354318 次
社区版块
存档分类
最新评论

java 版本的某个时间前(发表于XX前)功能

阅读更多
有很多版本的,先上过ruby版本。

def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
    from_time = from_time.to_time if from_time.respond_to?(:to_time)
    to_time = to_time.to_time if to_time.respond_to?(:to_time)
    distance_in_minutes = (((to_time - from_time).abs)/60).round
    case distance_in_minutes
    when 0..1 then (distance_in_minutes==0) ? '几秒钟前'[] : '1 分钟前'[]
    when 2..59 then "{minutes} 分钟前"[:minutes_ago, distance_in_minutes]
    when 60..90 then "1 小时前"[]
    when 90..1440 then "{hours} 小时前"[:hours_ago, (distance_in_minutes.to_f / 60.0).round]
    when 1440..2160 then '1 天前'[] # 1 day to 1.5 days
    when 2160..2880 then "{days} 天前"[:days_ago, (distance_in_minutes.to_f / 1440.0).round] # 1.5 days to 2 days
    else from_time.strftime("%Y-%m-%d"[:datetime_format]) { |x| x.downcase }
    end
  end


下面是java版本

public static String distanceOfTimeInWords(long fromTime, long toTime, String format) {
		return distanceOfTimeInWords(new Date(fromTime), new Date(toTime), format, 7);
	}

	public static String distanceOfTimeInWords(long fromTime, long toTime, String format, int days) {
		return distanceOfTimeInWords(new Date(fromTime), new Date(toTime), format, days);
	}

	public static String distanceOfTimeInWords(long fromTime, long toTime, int days) {
		return distanceOfTimeInWords(new Date(fromTime), new Date(toTime), "MM-dd HH:mm", days);
	}

	public static String distanceOfTimeInWords(long fromTime, long toTime) {
		return distanceOfTimeInWords(new Date(fromTime), new Date(toTime), "MM-dd HH:mm", 7);
	}

	public static String distanceOfTimeInWords(Date fromTime, Date toTime, int days) {
		return distanceOfTimeInWords(fromTime, toTime, "MM-dd HH:mm", days);
	}

	public static String distanceOfTimeInWords(Date fromTime, Date toTime, String format) {
		return distanceOfTimeInWords(fromTime, toTime, format, 7);
	}

	public static String distanceOfTimeInWords(Date fromTime, Date toTime) {
		return distanceOfTimeInWords(fromTime, toTime, "MM-dd HH:mm", 7);
	}

	/**
	 * 截止时间时间到起始时间间隔的时间描述
	 * @param fromTime 起始时间
	 * @param toTime 截止时间
	 * @param format 格式化
	 * @param days 超过此天数,将按format格式化显示实际时间
	 * @return
	 */
	public static String distanceOfTimeInWords(Date fromTime, Date toTime, String format, int days) {
		long distanceInMinutes = (toTime.getTime() - fromTime.getTime()) / 60000;
		String message = "";
		if (distanceInMinutes == 0) {
			message = "几秒钟前";
		} else if (distanceInMinutes >= 1 && distanceInMinutes < 60) {
			message = distanceInMinutes + "分钟前";
		} else if (distanceInMinutes >= 60 && distanceInMinutes < 1400) {
			message = (distanceInMinutes / 60) + "小时前";
		} else if (distanceInMinutes >= 1440 && distanceInMinutes <= (1440 * days)) {
			message = (distanceInMinutes / 1440) + "天前";
		} else {
			message = new SimpleDateFormat(format).format(fromTime);
		}
		return message;
	}
分享到:
评论

相关推荐

    用程序输出“当前时间是XXXX年XX月XX日XX时XX分XX秒(第XX周,周X)

    自学Date类(java.util.Date)和SimpleDateFormat类,用程序输出“当前时间是XXXX年XX月XX日XX时XX分XX秒(第XX周,周X)” 2 比较String与StringBuffer、StringBuilder的自增速度。方法:在自增前记录系统时间,...

    java文件夹按时间、大小等排序

    这里我们将深入探讨如何使用Java实现文件按时间、大小等属性进行排序的功能。 首先,我们要引入`java.io.File`类,它是Java中用于表示文件和目录的基本类。我们可以创建`File`对象来代表一个具体的文件或目录,然后...

    ICTCLAS的Java改造版本

    前段时间工作中需要用到中文分词的软件,于是上网找了找。 发现中科院提供的ictclas工具是比较不错的。 可惜没有官方正式的java版本,有一个网友sinbo自己改写了一个java版本。 但在使用过程中发现问题很多。其中...

    Java实现邮箱激活功能

    用Java实现邮箱激活账号的功能,可以参考我的博客 博客地址:http://blog.csdn.net/jolingogo/article/details/8591197

    网盘源码-实现部分功能(JAVA)

    在本项目中,"网盘源码-实现部分功能(JAVA)" 是一个基于JAVA语言编写的网络硬盘(或云存储)应用的源代码。开发者已经实现了该系统的一部分核心功能,但仍有其他功能需要后续开发。这表明这个源码提供了一个基础架构...

    java中遍历某个目录下的所有文件及文件夹中的文件

    本文将详细介绍如何使用Java标准库中的`java.io.File`类来实现这一功能。我们将通过一个简单的递归函数来演示如何遍历目录、列出所有文件的路径,并探讨一些高级用法。 #### 一、基础知识介绍 1. **`java.io.File`...

    java操作文件,得到文件名,大小,时间,及修改时间

    java操作文件,得到文件名,大小,时间,及修改时间java操作文件,得到文件名,大小,时间,及修改时间java操作文件,得到文件名,大小,时间,及修改时间

    java实现仿百度文库功能,含例子

    在本文中,我们将深入探讨如何使用Java来实现一个仿百度文库的功能,这将涉及到文件解析、在线预览以及用户交互等多个方面的技术。百度文库作为一个知名的文档分享平台,其核心功能包括文档上传、存储、搜索以及在线...

    jsp,java实现谷歌地图,查询地图功能

    本项目专注于使用JSP和Java来集成并实现谷歌地图的查询功能。下面将详细阐述这一技术实现的关键知识点。 1. **JSP基础**: - JSP生命周期:包括翻译、初始化、服务和销毁四个阶段,开发者主要在服务阶段编写业务...

    飞鸽传书java版本

    飞鸽传书是一款经典的局域网通信软件,其Java版本为开发者提供了在Java平台上实现文件传输和即时通讯的可能性。在本文中,我们将深入探讨这款软件的Java实现,以及相关的技术知识点。 1. **Java编程语言**:Java是...

    java实现课程表

    【Java实现课程表】是一个基于Java编程语言设计的特定于某个学校的教务系统课程表程序。这个程序的主要目的是为了展示如何使用Java技术来构建一个能够显示、管理个人课程的工具。由于不同学校的教务系统差异,这个...

    一款Java的MySqlWeb管理工具

    【描述】:“web版本的mysql管理工具,类似于phpMyAdmin,本资源来自互联网。” phpMyAdmin是一款广泛使用的开源MySQL管理工具,提供了一种直观的Web界面来管理数据库。而这款Java实现的MySQLWeb管理工具,可能是...

    JAVA运行环境WinXP 32位的版本

    JAVA运行环境WinXP 32位的版本

    用java实现爬虫抓取网页中的表格数据功能源码

    使用java代码基于MyEclipse开发环境实现爬虫抓取网页中的表格数据,将抓取到的数据在控制台打印出来,需要后续处理的话可以在打印的地方对数据进行操作。包解压后导入MyEclipse就可以使用,在TestCrawTable中右键...

    ZeroMQ 用于JAVA的jar和lib库

    2. **版本3.1**:jzmq 3.1版本可能不包含最新特性,但对JDK 1.6和1.7的支持确保了兼容性,这对于维护旧项目或有特定Java版本需求的环境是很有价值的。 3. **64位DLL**:libzmq.dll和jzmq.dll是ZeroMQ和jzmq的动态...

    java通讯录实现了添加删除和查找功能

    在Java编程语言中,创建一个通讯录应用是一个常见的学习项目,它可以帮助我们深入理解面向对象设计、数据存储以及用户交互等核心概念。本项目实现了一个简单的通讯录系统,具备添加联系人、删除联系人和查找联系人等...

    java jdk 1.8.0

    5. ** Date和Time API的改进**:Java 8引入了全新的java.time包,替代了过时的java.util.Date和java.util.Calendar,提供了更加友好、强大的日期和时间处理功能。 6. ** Nashorn JavaScript引擎**:Java 8集成了...

    纯java读取apk文件信息(包括版本号,包名等)

    本教程将详细介绍如何使用纯Java来读取APK文件中的关键信息,如版本号和包名。 首先,我们需要了解APK文件的结构。一个APK文件本质上是一个ZIP格式的压缩包,我们可以用Java内置的`java.util.zip`库来处理。以下是...

    java转js工具

    Java到JavaScript转换工具有助于开发者将已有的Java代码库移植到JavaScript环境中,这在Web开发中尤其有用,因为JavaScript是浏览器端的主要脚本语言。这样的工具能够帮助开发者利用Java的强大功能来构建前端应用,...

    java开源包9

    github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...

Global site tag (gtag.js) - Google Analytics