计算时间差
来源:互联网 发布:淘宝店铺装修模板 编辑:程序博客网 时间:2024/05/19 09:39
public static int getDateCount(String start,String end) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date d1 = df.parse(start); Date d2 = df.parse(end); //Date d2 = new Date(System.currentTimeMillis());//你也可以获取当前时间 long diff = d1.getTime() - d2.getTime();//这样得到的差值是微秒级别 } catch (ParseException e) { } return getDateCount(start,end); } //这里做东西要用到天数 //return (int) (diff / (1000 * 60 * 60 * 24)); //这一句就是将毫秒转化为天数 //也可以获得年数,月数etc.
Toast.makeText(this, "相差时间为:" + getDateCount("2106-05-27 12:00:00","2006-05-26 12:00:00")+"天",Toast.LENGTH_SHORT).show();
http://blog.csdn.net/u014388299/article/details/52389698
2017/7/14更新
设置时间选择器
- 获取系统时间
//获取系统时间并设置为时间选择器当前时间 final Calendar ca = Calendar.getInstance(); mYear = ca.get(Calendar.YEAR); mMonth = ca.get(Calendar.MONTH); mDay = ca.get(Calendar.DAY_OF_MONTH);
- 将系统时间赋给时间选择器
private DatePickerDialog.OnDateSetListener mdateListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mYear = year; mMonth = monthOfYear; mDay = dayOfMonth; display(); } };
- 点击显示时间的Textview的响应事件(弹出时间选择器并选择时间然后setText进TextView)
dateDisplay = (TextView) findViewById(R.id.textViewdate);dateDisplay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showDialog(DATE_DIALOG); } });@Override protected Dialog onCreateDialog(int id) { switch (id) { case DATE_DIALOG: return new DatePickerDialog(this, mdateListener, mYear, mMonth, mDay); } return null; }private DatePickerDialog.OnDateSetListener mdateListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mYear = year; mMonth = monthOfYear; mDay = dayOfMonth; display(); } };/** * 设置日期 利用StringBuffer追加 */public void display() { dateDisplay.setText(new StringBuffer().append(mYear).append("-").append(mMonth + 1).append("-").append(mDay).append(" ")); }
- 这是设置系统时间进时间选择器的样式(API25)
不设置系统时间就会这样
获取当前时间就简单得多
上网查了一下,获取当前时间有两种主要的方法
- 第一种:获取距离1970-1-1日的 毫秒数,不过这个似乎还要具体到秒,软件中只需要计算天数,所以没考虑
- 第二种:分别获取当前系统时间的年月日,然后将它转化为String类型再拼成一个字符串来显示时间以及计算时差
//获取系统时间 final Calendar ca1 = Calendar.getInstance(); nYear=ca1.get(Calendar.YEAR); nMonth = ca1.get(Calendar.MONTH); nDay = ca1.get(Calendar.DAY_OF_MONTH);//获取系统时间并组成字符串 Snyear = String.valueOf(nYear); SnMonth = String.valueOf(nMonth+1); Sndays = String.valueOf(nDay); if(nMonth>=0 && nMonth <=8) { j =Snyear+"0"+SnMonth+Sndays; } else { j =Snyear+SnMonth+Sndays; }//Calendar获取的月份要+1//如果月份是1-9之间的,那么就要在月份前面加一个0,便于之后计算时差
- 计算时差的code,因为天数只可能是整数,所以要将double转为int再转String去小数点
private String getDateCount(String beginTime,String endTime) { String str1 = endTime; //"yyyyMMdd"格式 如 20131022 String str2 = beginTime; //"yyyyMMdd"格式 如 20131022 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");//输入日期的格式 Date date1 = null; try { date1 = simpleDateFormat.parse(str1); } catch (ParseException e) { e.printStackTrace(); } Date date2 = null; try { date2 = simpleDateFormat.parse(str2); } catch (ParseException e) { e.printStackTrace(); } GregorianCalendar cal1 = new GregorianCalendar(); GregorianCalendar cal2 = new GregorianCalendar(); cal1.setTime(date1); cal2.setTime(date2); double dayCount = (cal2.getTimeInMillis()-cal1.getTimeInMillis())/(1000*3600*24);//从间隔毫秒变成间隔天数 int mid = (int) dayCount;//double转int再转String去掉小数点 String days = String.valueOf(mid); return days; }
- 计算选定的日期与当前日期的天数差
吐槽一下,还是安卓新版时间选择器好看,以前的那个滚轮的太丑了
IOS选择器:http://blog.csdn.net/AndroidMsky/article/details/53302959
阅读全文
1 0
- 时间差计算
- 计算时间差
- 计算时间差
- 计算时间差
- 时间差计算
- 计算时间差
- 时间差 计算
- 计算时间差
- 计算时间差
- 计算时间差
- 计算时间差
- 计算时间差
- 计算时间差
- 时间差计算
- 计算时间差
- 计算时间差
- 计算时间差
- 计算时间差
- jzoj4216. 【NOIP2015模拟9.12】平方和
- selenium自动化-java-IE启动
- Mysql数据库配置双向同步,高低版本。
- 常用网站收集
- quicktest Professional下载地址,无限制使用方法
- 计算时间差
- Selenium-java-TestNg-的运行
- POJ-3207-TwoSAT
- java环境变量详细配置步骤
- 洋铭 NVS-25 网络编码器推送RTMP直播流至流媒体系统进行网络直播
- 苹果审核规范4.3
- selenium自动化-java-封装断言
- selenium自动化-java-封断言类2
- 批量操作find_in_set的应用