安卓时间工具类,计算时间差,比较当前时间_安卓string类型怎么比对小时时间-程序员宅基地

技术标签: 安卓  计算时间差  TimeUtil  android  时间工具类  

自己的工具类贴上来。。。有什么不足的地方请大家指出。


<span style="font-size:18px;">package com.example.property.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import android.text.format.Time;

/**
 * 
 * @author cj 2016-5-26
 * 
 */
public class TimeUtil {

	private SimpleDateFormat sf = null;

	/**
	 * 获取当前时间
	 * 
	 * @return
	 */
	public String getNowTime() {
		String timeString = null;
		Time time = new Time();
		time.setToNow();
		String year = thanTen(time.year);
		String month = thanTen(time.month + 1);
		String monthDay = thanTen(time.monthDay);
		String hour = thanTen(time.hour);
		String minute = thanTen(time.minute);

		timeString = year + "-" + month + "-" + monthDay + " " + hour + ":"
				+ minute;
		// System.out.println("-------timeString----------" + timeString);
		return timeString;
	}

	public int calculate(int year, int month) {

		boolean yearleap = judge(year);
		int day;
		if (yearleap && month == 2) {
			day = 29;
		} else if (!yearleap && month == 2) {
			day = 28;
		} else if (month == 4 || month == 6 || month == 9 || month == 11) {
			day = 30;
		} else {
			day = 31;
		}
		return day;
	}

	public boolean judge(int year) {
		boolean yearleap = (year % 400 == 0) || (year % 4 == 0)
				&& (year % 100 != 0);// 采用布尔数据计算判断是否能整除
		return yearleap;
	}

	/**
	 * 十一下加零
	 * 
	 * @param str
	 * @return
	 */
	public String thanTen(int str) {

		String string = null;

		if (str < 10) {
			string = "0" + str;
		} else {

			string = "" + str;

		}
		return string;
	}

	/**
	 * 计算时间差
	 * 
	 * @param starTime
	 *            开始时间
	 * @param endTime
	 *            结束时间
	 * @param type
	 *            返回类型 ==1----天,时,分。 ==2----时
	 * @return 返回时间差
	 */
	public String getTimeDifference(String starTime, String endTime) {
		String timeString = "";
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

		try {
			Date parse = dateFormat.parse(starTime);
			Date parse1 = dateFormat.parse(endTime);

			long diff = parse1.getTime() - parse.getTime();

			long day = diff / (24 * 60 * 60 * 1000);
			long hour = (diff / (60 * 60 * 1000) - day * 24);
			long min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
			long s = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
			long ms = (diff - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000
					- min * 60 * 1000 - s * 1000);
			// System.out.println(day + "天" + hour + "小时" + min + "分" + s +
			// "秒");
			long hour1 = diff / (60 * 60 * 1000);
			String hourString = hour1 + "";
			long min1 = ((diff / (60 * 1000)) - hour1 * 60);
			timeString = hour1 + "小时" + min1 + "分";
			// System.out.println(day + "天" + hour + "小时" + min + "分" + s +
			// "秒");

		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return timeString;

	}

	/**
	 * 计算相差的小时
	 * 
	 * @param starTime
	 * @param endTime
	 * @return
	 */
	public String getTimeDifferenceHour(String starTime, String endTime) {
		String timeString = "";
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

		try {
			Date parse = dateFormat.parse(starTime);
			Date parse1 = dateFormat.parse(endTime);

			long diff = parse1.getTime() - parse.getTime();
			String string = Long.toString(diff);

			float parseFloat = Float.parseFloat(string);

			float hour1 = parseFloat / (60 * 60 * 1000);

			timeString = Float.toString(hour1);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return timeString;

	}

	/**
	 * 获取时间中的某一个时间点
	 * 
	 * @param str
	 * @param type
	 * @return
	 */
	public String getJsonParseShiJian(String str, int type) {
		String shijanString = null;
		String nian = str.substring(0, str.indexOf("-"));
		String yue = str.substring(str.indexOf("-") + 1, str.lastIndexOf("-"));
		String tian = str.substring(str.lastIndexOf("-") + 1, str.indexOf(" "));
		String shi = str.substring(str.indexOf(" ") + 1, str.lastIndexOf(":"));
		String fen = str.substring(str.lastIndexOf(":") + 1, str.length());

		switch (type) {
		case 1:
			shijanString = nian;
			break;
		case 2:
			shijanString = yue;
			break;
		case 3:
			shijanString = tian;
			break;
		case 4:
			shijanString = shi;
			break;
		case 5:
			shijanString = fen;
			break;

		}
		return shijanString;
	}

	/**
	 * Sring变int
	 * 
	 * @param str
	 * @return
	 */
	public int strToInt(String str) {
		int value = 0;
		value = Integer.parseInt(str);
		return value;
	}

	/**
	 * 与当前时间比较早晚
	 * 
	 * @param time
	 *            需要比较的时间
	 * @return 输入的时间比现在时间晚则返回true
	 */
	public boolean compareNowTime(String time) {
		boolean isDayu = false;

		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

		try {
			Date parse = dateFormat.parse(time);
			Date parse1 = dateFormat.parse(getNowTime());

			long diff = parse1.getTime() - parse.getTime();
			if (diff <= 0) {
				isDayu = true;
			} else {
				isDayu = false;
			}
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return isDayu;
	}

	/**
	 * 把时间戳变yyyy-MM-dd HH:mm格式时间
	 * 
	 * @param time
	 * @return
	 */
	public String getDateToString(long time) {
		Date d = new Date(time);
		sf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
		return sf.format(d);
	}

	/**
	 * 返回时间戳
	 * 
	 * @param time
	 * @return
	 */
	public long dataOne(String time) {
		SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm",
				Locale.CHINA);
		Date date;
		long l = 0;
		try {
			date = sdr.parse(time);
			l = date.getTime();
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return l;
	}

	/**
	 * 比较两个时间
	 * 
	 * @param starTime
	 *            开始时间
	 * @param endString
	 *            结束时间
	 * @return 结束时间大于开始时间返回true,否则反之֮
	 */
	public boolean compareTwoTime(String starTime, String endString) {
		boolean isDayu = false;
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

		try {
			Date parse = dateFormat.parse(starTime);
			Date parse1 = dateFormat.parse(endString);

			long diff = parse1.getTime() - parse.getTime();
			if (diff >= 0) {
				isDayu = true;
			} else {
				isDayu = false;
			}
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return isDayu;

	}

	public boolean compareTwoTime2(String starTime, String endString) {
		boolean isDayu = false;
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

		try {
			Date parse = dateFormat.parse(starTime);
			Date parse1 = dateFormat.parse(endString);

			long diff = parse1.getTime() - parse.getTime();
			if (diff >= 0) {
				isDayu = true;
			} else {
				isDayu = false;
			}
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return isDayu;

	}

	/**
	 * 获取年
	 * 
	 * @param time
	 * @return
	 */
	public String getTimeYear(String time) {

		String substring = time.substring(0, time.lastIndexOf(" "));
		return substring;

	}

	/**
	 * 换算小时,0.5小时-->0小时30分
	 * 
	 * @param hour
	 * @return
	 */
	private String convertTime(String hour) {

		String substring = hour.substring(0, hour.lastIndexOf("."));
		String substring2 = hour.substring(hour.lastIndexOf(".") + 1,
				hour.length());
		substring2 = "0." + substring2;
		float f2 = Float.parseFloat(substring2);
		f2 = f2 * 60;
		String string = Float.toString(f2);
		String min = string.substring(0, string.lastIndexOf("."));
		return substring + "小时" + min + "分";

	}
}
</span>









版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mxiaoyem/article/details/51555742

智能推荐

Spring Data Jdbc和JdbcTemplate知识概括_springdatajdbc jdbctemplate-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏3次。spring对JDBC的支持之JdbcTemplate知识概括简介方法概述JDBC和JPA与spring data,原生jdbc的联系简介简介:为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架. 作为Spring JDBC 框架的核心JDBC 模板的设计目的是为不同类型的 JDBC 操作提供模板方法. 每个模板方法都能控制整个过程, 并允许覆盖过程中的特定任务.通过这种方式, 可以在尽可能保留灵活性的情况下, 将数据库存取_springdatajdbc jdbctemplate

概率论基础知识汇总-程序员宅基地

文章浏览阅读1.8k次。存在意义:在数学和统计学中,矩(moment)是对变量分布和形态特点的一组度量。原点矩和中心距的定义直接使用变量XXX计算的矩被称为原点矩(raw moment),矩通常默认就是指原始矩,比如一阶矩,二阶矩。移除均值后X−E(X)X-E(X)X−E(X)计算的矩被称为中心矩(central moment)。nnn阶矩的定义为:vn=∫−∞+∞xnf(x)dxv_n=\int_{-\infty}^{+\infty}x^nf(x)dxvn​=∫−∞+∞​xnf(x)dxnnn阶中心矩的定义为:_概率论基础

Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR) | 解压安装_could not find wrapvulkanheaders (missing: vulkan_-程序员宅基地

文章浏览阅读9.4k次,点赞2次,收藏4次。文章目录遇到报错VULKAN 解压安装【解压安装 -- 实际采用 】遇到报错CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR)Call Stack (most recent call first): /usr/share_could not find wrapvulkanheaders (missing: vulkan_include_dir)

css-loader和style-loader的区别和使用-程序员宅基地

文章浏览阅读3.1w次,点赞24次,收藏33次。webpack是用JS写的,运行在node环境,所以默认webpack打包的时候只会处理JS之间的依赖关系!!!因为像 .css 这样的文件不是一个 JavaScript 模块,你需要配置 webpack 使用 css-loader 或者 style-loader 去合理地处理它们。如果在JS中导入了css,那么就需要使用 css-loader 来识别这个模块,通过特定的语法规则进行转换内容最..._style-loader

element的dialog对话框组件关闭时销毁里面的元素_element元素没被关闭-程序员宅基地

文章浏览阅读1.4w次。加上:destroy-on-close="true"属性即可,该属性默认为false。<el-dialog title="标题" :destroy-on-close="true" :visible.sync="isShow"> // 内容区域</el-dialog>..._element元素没被关闭

vue实现超过两行显示展开收起_vant列表css文字超出展开收起-程序员宅基地

文章浏览阅读7k次。vue实现超过两行显示展开收起具体代码如下:<template> <div> <div class="group"> <div class="text more" ref="more"> 占位 </div> <div class="list" v-for="(..._vant列表css文字超出展开收起

随便推点

华为 1+X 网络系统建设与运维课程资源目录_网络系统建设与运维中级pdf-程序员宅基地

文章浏览阅读3.5k次。背景介绍:为贯彻落实教育部等部门联合印发的《关于在院校实施“学历证书+若干职业技能等级证书”制度试点方案》(简称1+X证书)文件精神,华为积极参与国家1+X证书试点工作,2020年成为职业教育培训评价组织,所申请的《网络系统建设与运维职业技能等级标准》、《智能计算平台应用开发职业技能等级标准》被批准参与1+X证书制度试点工作。同时,为保障1+X职业技能等级标准工作的顺利推进,华为联合高校教师共同编纂《网络系统建设与运维》(初级、中级、高级)和《智能计算平台应用开发》(初级、中级、高级)系列教材。_网络系统建设与运维中级pdf

有趣的博客-防止博客被吸的32种方法-程序员宅基地

文章浏览阅读269次。I blogfor me, mostly so I can Google myself later. But, I also enjoy the back and forth, the connections, with you, Dear Reader. I like being able to kick ideas around with a collective of peers an..._如何防止博客被刷流量

镜头像差之一——球差_镜头球差-程序员宅基地

文章浏览阅读2.9k次。1.什么是球差 近中心视场的光线与边缘光线,因为球面折射率不能均匀的将平行光线汇聚到同一点而形成弥散斑。 直接上图: 模拟图​​​ _镜头球差

火狐浏览器安装插件提示:“此附加组件无法安装,因为他有可能已损坏”_xpinstall.signatures.required-程序员宅基地

文章浏览阅读1.9w次。新开一个火狐浏览器输入“about:config”,然后回车然后找到xpinstall.signatures.required将它的true改为false,怎么将xpinstall.signatures.required将它的true改为false,双击xpinstall.signatures.required就可以将true改为falsehttps://blog.csd..._xpinstall.signatures.required

用VLC库做播放器时,本地文件和远程文件路径处理方法_android vlcdemo 播放本地文件-程序员宅基地

文章浏览阅读5k次。用VLC库做播放器时,本地文件和远程文件路径处理方法Media media;if (intent.getStringExtra("VideoType").equals("Local")) { media = new Media(libvlc, intent.getStringExtra("VideoUrl"));} else { media = new M..._android vlcdemo 播放本地文件

keil的数据波形如何在电脑示波器软件keil array visualization显示-程序员宅基地

文章浏览阅读4.9k次,点赞2次,收藏15次。其他博主已经介绍过了https://blog.csdn.net/vbvcde/article/details/88920495但本人由于对keil有点生疏,使用时还是碰了写问题,所幸后来向作者邮箱[email protected]解决了问题。本文补充一些比较细节的问题。1.软件需要在debug模式下执行之前本人以为,debug完,再点击load,就可以通过这个软件看数据波形。但后来发现报“地址...

推荐文章

热门文章

相关标签