计算时间差,显示时间差

计算时间差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;


    }

}


猜你喜欢

转载自blog.csdn.net/meixi_android/article/details/79494887
今日推荐