Android 日期计算类
2017-02-07 15:22
288 查看
分享一个使用较方便的日期计算类:
package com.utils.datecount; import java.text.SimpleDateFormat; import java.util.Date; import java.util.GregorianCalendar; public class DateCount { /** * datelevel 0为7天内,1为7到15天,2为15天以上 */ public static int datelevel = 0; public static int positionweek = -1; public static int position2week = -1; /** * 获取与今天时间差 * @param endTime * @return */ public static double countDate(String startTime) { Date curDate = new Date(System.currentTimeMillis());// 获取当前时间 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");// 输入日期的格式 Date date = null; try { date = simpleDateFormat.parse(startTime); if (date == null) return 0; } catch (java.text.ParseException e) { return 0; // e.printStackTrace(); } GregorianCalendar cal1 = new GregorianCalendar(); GregorianCalendar cal2 = new GregorianCalendar(); cal1.setTime(date); cal2.setTime(curDate); double dayCount = (cal2.getTimeInMillis() - cal1.getTimeInMillis()) / (1000 * 3600 * 24);// 从间隔毫秒变成间隔天数 return dayCount; } }
package com.utils.tools; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import android.text.TextUtils; import android.text.format.DateFormat; /** * 日期格式化工具类 * * @author Harryxu * */ public class DateUtil { public static Date convert2Date(String format, String dateStr) { Date date = null; try { if (TextUtils.isEmpty(format)) format = "yyyy-MM-dd HH:mm:ss"; return new java.sql.Date(new SimpleDateFormat(format).parse(dateStr).getTime()); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return date; } public static CharSequence formatDate(String format, String dateStr) { Date date = null; try { date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } if (date == null) date = new Date(); if (TextUtils.isEmpty(format)) format = "yyyy-MM-dd"; return DateFormat.format(format, date); } /** * 根据偏量值取得传入时间的前后天数 * * @param date * @param offset 时间偏量值 * @return */ public static Date getNextPreDay(Date date, int offset) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, offset); date = calendar.getTime(); return date; } public static int getDays(Date date1, Date date2) { Date kaishi = date1, jieshu = date2; if (date1.compareTo(date2) > 0) { kaishi = date2; jieshu = date1; } long diff = jieshu.getTime() - kaishi.getTime(); float days = diff / 24f / 60 / 60 / 1000; return (int) ((days - (int) days) >= 0 ? (days + 1) : days); } public static String addMinites( String time, int addminite){ SimpleDateFormat myFormatter = new SimpleDateFormat("HH:mm"); Calendar totime = Calendar.getInstance(); java.util.Date date = null; try { date = myFormatter.parse(time); } catch (ParseException e) { e.printStackTrace(); } if (date == null) return null; totime.setTime(date); totime.add(Calendar.MINUTE, addminite); date = totime.getTime(); return myFormatter.format(date); } }
相关文章推荐
- 学习Android广播小结
- Android解惑 - 为什么要用Fragment.setArguments(Bundle bundle)来传递参数
- Android apk信息获取管理和手机信息获取管理
- Android Vector
- Android Screen Monitor 将真机屏幕同步到PC
- 设备分享-腾讯优测
- Android Bander设计与实现 - 设计篇
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
- android的Binder框架
- android5.0.1源代码下载链接
- Android 中AES加密举例
- Android Studio 加载 .so库出现couldn't find "*.so"
- Android APK反编译就这么简单 详解(附图)
- Android底部和标签导航栏—TabLayout+Fragment
- android 模拟点击view事件
- Android 自定义ViewGroup
- 开源项目- Lottie 简介
- Android中listview和imageview实现条目单选效果
- 说说关于Android使用Gson解析Json所需实体类的那些事~
- AsyncTask异步任务 android