计算时间差20分钟之后为true
boolean ifstart; String onetime= ShareUtil.getSharedString("servicetime"); long twolongtime=System.currentTimeMillis(); String twotime = String.valueOf(twolongtime); ShareUtil.sharedPstring("servicetime",twotime); if (!TextUtil.isEmpty(onetime)){ long onelongtime = Long.parseLong(onetime); long day = 0; long hour = 0; long min = 0; long diff ; diff = twolongtime - onelongtime; day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); Log.i("lgq","tian--==="+day+"...hour="+hour+"..-----.min==="+min+"ifstat====="+onelongtime+"....."+twolongtime+"......"+diff); if (day>0||hour>0||min>20|| TextUtil.isEmpty(onetime)){ ifstart= true; }else { ifstart=false; } }else { ifstart=true; }
工具类
public class ShareUtil { private static SharedPreferences sp; private static Context mContext; // preferences.edit().clear().commit(); 清空数据 private static void initContext() { if (mContext == null){ mContext = MyApplication.getTotalContext(); sp= mContext.getSharedPreferences("lg", 0); } } public static int getSharedInt(String key){ initContext(); int re = 0; re = sp.getInt(key, 0); return re; } public static int getSharedInt(int nResID) { initContext(); return sp.getInt(mContext.getString(nResID), 0); } public static String getSharedString(int nResID) { initContext(); return sp.getString(mContext.getString(nResID), ""); } public static String getSharedString(String key){ initContext(); String s = sp.getString(key,""); return s; } public static long getSharedlong(String key){ initContext(); long s = sp.getLong(key, 0); return s; } public static long getSharedlong(int nResID){ initContext(); long s = sp.getLong(mContext.getString(nResID), 0); return s; } public static void sharedPint(String key,int value){ initContext(); SharedPreferences.Editor editor = sp.edit(); editor.putInt(key, value); editor.commit(); } public static void sharedPint(int nResID, int content) { initContext(); sp.edit().putInt(mContext.getString(nResID), content).commit(); } public static void sharedPstring(int nResID, String strContent) { initContext(); if (TextUtils.isEmpty(strContent)) strContent = ""; sp.edit().putString(mContext.getString(nResID), strContent).commit(); } public static void editLong(int nResID, long content) { initContext(); sp.edit().putLong(mContext.getString(nResID), content).commit(); } public static void editLong(String strKey, long content) { initContext(); sp.edit().putLong(strKey, content).commit(); } public static void sharedPstring(String key,String value){ initContext(); SharedPreferences.Editor editor = sp.edit(); editor.putString(key,value); editor.commit(); } public static void deleP(){ initContext(); sp = mContext.getSharedPreferences("lg",0); sp.edit().clear().commit(); } }
public class TextUtil { public static boolean isEmpty(String str) { return TextUtils.isEmpty(str) || "null".equals(str); } //判断是否有表情 public static boolean isEmojiCharacter(char codePoint) { return !(((codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) || (codePoint == 0xD) || ((codePoint >= 0x20) && codePoint <= 0xD7FF)) || ((codePoint >= 0xE000) && (codePoint <= 0xFFFD)) || ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF))); } // 设置下划线 public static TextView setBelowLine(TextView textView) { textView.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); // 下划线 return textView; } // 设置斜体字 public static SpannableString setSpanWord(String word) { SpannableString sp = new SpannableString(word); // 设置斜体 sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 0, word.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); return sp; } // 设置字体颜色 public static SpannableStringBuilder setStringColor(String word, String changePart, String color) { char[] c = changePart.toCharArray(); int lastIndex = c.length - 1; int start = word.indexOf(c[0]); int end = start + lastIndex + 1; SpannableStringBuilder style = new SpannableStringBuilder(word); style.setSpan(new ForegroundColorSpan(Color.parseColor(color)), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return style; } /** * 格式化要显示的字符串,做非空判断 * 该方法主要做用在ui显示这一块,用于更好地显示字符,防止null字符出现和空指针 * * @param str 要验证的字符串 * @return 参数若为空或“”或null字符串,则返回空,反之直接返回原有值 */ public static String formatString(String str) { if (TextUtils.isEmpty(str)) return null; if ("null".equalsIgnoreCase(str)) return null; return str; } /** * 去掉url中的路径,留下请求参数部分 * @param strURL url地址 * @return url请求参数部分 */ private static String TruncateUrlPage(String strURL) { String strAllParam=null; String[] arrSplit=null; strURL=strURL.trim(); arrSplit=strURL.split("[?]"); if(strURL.length()>1) { if(arrSplit.length>1) { if(arrSplit[1]!=null) { strAllParam=arrSplit[1]; } } } return strAllParam; } /** * 解析出url参数中的键值对 * 如 "index.jsp?Action=del&id=123",解析出Action:del,id:123存入map中 * @param URL url地址 * @return url请求参数部分 */ public static Map<String, String> URLRequest(String URL) { Map<String, String> mapRequest = new HashMap<String, String>(); String[] arrSplit=null; String strUrlParam=TruncateUrlPage(URL); if(strUrlParam==null) { return mapRequest; } //每个键值为一组 www.2cto.com arrSplit=strUrlParam.split("[&]"); for(String strSplit:arrSplit) { String[] arrSplitEqual=null; arrSplitEqual= strSplit.split("[=]"); //解析出键值 if(arrSplitEqual.length>1) { //正确解析 mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]); } else { if(arrSplitEqual[0]!="") { //只有参数没有值,不加入 mapRequest.put(arrSplitEqual[0], ""); } } } return mapRequest; } }
计算时间差,显示时间
public class DateDistance { /** * 时间工具 */ public static long getDistanceDays(String str1, String str2) throws Exception{ DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date one; Date two; long days=0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff ; if(time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } days = diff / (1000 * 60 * 60 * 24); } catch (ParseException e) { e.printStackTrace(); } return days; } public static String timetodate(String time) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(Long.valueOf(time)); SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日"); String date = sf.format(calendar.getTime()); return date; } /** * 两个时间相差距离多少天多少小时多少分多少秒 * @param str1 时间参数 1 格式:1990-01-01 12:00:00 * @param str2 时间参数 2 格式:2009-01-01 12:00:00 * @return long[] 返回值为:{天, 时, 分, 秒} */ public static long getTimesChaLong(String str1, String str2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long day = 0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff ; diff = time1 - time2; day = diff / (24 * 60 * 60 * 1000); Log.v("lgq","........ "+day); } catch (ParseException e) { e.printStackTrace(); } return day; } /** * 两个时间相差距离多少天多少小时多少分多少秒 * @param str1 时间参数 1 格式:1990-01-01 12:00:00 * @param str2 时间参数 2 格式:2009-01-01 12:00:00 * @return String 返回值为:xx天xx小时xx分xx秒 */ public static String getDistanceTime(String str1, String str2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long day = 0; long hour = 0; long min = 0; long sec = 0; String myhour=""; String mymin=""; int mymonth=0; int myday=0; int twoday=0; try { final Calendar c = Calendar.getInstance(); c.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); String mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 获取当前月份的日期号码 twoday = Integer.parseInt(mDay); one = df.parse(str1); c.setTime(one); // Log.v("Lgq","ddd====="+str1); two = df.parse(str2); myhour = String.valueOf(c.get(Calendar.HOUR_OF_DAY)); if (myhour.length()==1){ myhour="0"+myhour; } mymin = String.valueOf(c.get(Calendar.MINUTE)); if (mymin.equals("0")){ mymin="00"; } mymonth = c.get(Calendar.MONTH)+1; myday = c.get(Calendar.DAY_OF_MONTH); long time1 = one.getTime(); long time2 = two.getTime(); long diff ; diff = time2 - time1; day = diff / (24 * 60 * 60 * 1000); // Log.v("lgq","tian--==="+day+"...one="+str1+"..-----.two==="+str2); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (diff/1000-day*24*60*60-hour*60*60-min*60); } catch (ParseException e) { e.printStackTrace(); } if (twoday-myday==0&&hour==0){ if (min == 0) { return "刚刚"; } else { return min + "分钟前"; } }else if (twoday-myday==0&&0<hour&&hour<=2){ return "2小时前"; }else if (twoday-myday==0&&hour>2){ return myhour+":"+mymin; } else if (twoday-myday==1){ return "昨天 "+myhour+":"+mymin; }else if (twoday-myday>1){ return mymonth + "-" + myday + " " + myhour + ":" + mymin ; } return mymonth + "-" + myday + " " + myhour + ":" + mymin ; } public static String getDistanceTimeToZW(String str1) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String typestring = "yyyy年MM月dd日"; String endtime=""; Date one; try { one = df.parse(str1); endtime = dateToString(one,typestring); } catch (ParseException e) { e.printStackTrace(); } return endtime; } public static String getDistanceTimeToHM(String str1) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String typestring = "yyyy-MM-dd HH:mm"; String endtime=""; Date one; try { one = df.parse(str1); endtime = dateToString(one,typestring); } catch (ParseException e) { e.printStackTrace(); } return endtime; } public static String dateToString(Date data, String formatType) { return new SimpleDateFormat(formatType).format(data); } public static String timetodatedetail(String time) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(Long.valueOf(time)); SimpleDateFormat sf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//这里的格式可换"yyyy年-MM月dd日-HH时mm分ss秒"等等格式 String date = sf.format(calendar.getTime()); return date; } public static String yuyuetimetodate(String time) { String dateen=""; try { Calendar calendar = Calendar.getInstance(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//小写的mm表示的是分钟 java.util.Date date=sdf.parse(time); calendar.setTime(date); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//这里的格式可换"yyyy年-MM月dd日-HH时mm分ss秒"等等格式 dateen= sf.format(calendar.getTime()); }catch (ParseException e){ e.printStackTrace(); } return dateen; } }