自定义工具类,获取当前时间到第二天的零点、下个月1号零点的时间差(s):

2018-03-14 11:31:09
cacheManager.set(monthKey, totalMonCount.toString(), DateUtil.getSecsToEndOfCurrentDay());public class DateUtil {    /**     *获取每月最后一天时间     * @param sDate1     * @return     */    public static Date getLastDayOfMonth(Date sDate1)   {        Calendar cDay1 = Calendar.getInstance();        cDay1.setTime(sDate1);        final int lastDay = cDay1.getActualMaximum(Calendar.DAY_OF_MONTH);        Date lastDate = cDay1.getTime();        lastDate.setDate(lastDay);        return  lastDate;    }    /*    获取下一个月第一天凌晨1点     */    public static Date nextMonthFirstDate() {        Calendar calendar = Calendar.getInstance();        calendar.set(Calendar.HOUR_OF_DAY, 1);   //设置为每月凌晨1点        calendar.set(Calendar.DAY_OF_MONTH, 1);   //设置为每月1号        calendar.add(Calendar.MONTH, 1);   // 月份加一,得到下个月的一号//        calendar.add(Calendar.DATE, -1);     下一个月减一为本月最后一天        return calendar.getTime();    }    /**     * 获取第二天凌晨0点毫秒数     * @return     */    public static Date nextDayFirstDate() throws ParseException {        Calendar cal = Calendar.getInstance();        cal.setTime(new Date());        cal.add(Calendar.DAY_OF_YEAR, 1);        cal.set(Calendar.HOUR_OF_DAY, 00);        cal.set(Calendar.MINUTE, 0);        cal.set(Calendar.SECOND, 0);        return cal.getTime();    }    //*********    /**     * 获取当前时间到下个月凌晨1点相差秒数     * @return     */    public static Long getSecsToEndOfCurrentMonth(){        Long secsOfNextMonth  = nextMonthFirstDate().getTime();        //将当前时间转为毫秒数        Long secsOfCurrentTime = new Date().getTime();        //将时间转为秒数        Long distance = (secsOfNextMonth - secsOfCurrentTime)/1000;        if (distance > 0 && distance != null){            return distance;        }        return new Long(0);    }    /**     * 获取当前时间到明天凌晨0点相差秒数     * @return     */    public static Long getSecsToEndOfCurrentDay() throws ParseException {        Long secsOfNextDay  = nextDayFirstDate().getTime();        //将当前时间转为毫秒数        Long secsOfCurrentTime = new Date().getTime();        //将时间转为秒数        Long distance = (secsOfNextDay - secsOfCurrentTime)/1000;        if (distance > 0 && distance != null){            return distance;        }        return new Long(0);    } }
  • 2018-11-22 21:20:04

    WebView内存泄漏--解决方法小结

    Android混合开发时经常用到WebView加载html等页面,而WebView的内存泄漏就是最经常遇到的问题,尤其是当项目中需要用webview加载的页面比较多时。 即使当我退出页面时在我的BrowserActivity的onDestroy()方法中进行内存占用回收(如下图)但并没有效果:

  • 2018-11-23 09:19:27

    论索引的重要性

    我还有什么能说的呢,看来索引基本能解决一切慢sql。好开心。

  • 2018-11-26 17:03:59

    有些 where 条件会导致索引无效

    在查询中,WHERE 条件也是一个比较重要的因素,尽量少并且是合理的 where 条件是徆重要的,尽量在多个条件的时候,把会提取尽量少数据量的条件放在前 面,减少后一个 where 条件的查询时间。

  • 2018-11-26 17:05:47

    sql查询调优之where条件排序字段以及limit使用索引的奥秘

    看起来匪夷所思,其实搞清楚mysql查询的原理之后,其实很简单 我们来看这2条sql查询,都用到了where order by limit 当有limit存在时,查询的顺序就有可能发生变化,这时并不是从数据库中先通过where过滤再排序再limit 因为如果这样的话,从500万数据中通过where过滤就不会是5s了。

  • 2018-11-26 21:46:28

    TextView设置行间距、行高,以及字间距

    Android系统中TextView有默认行间距,但是比较窄有的时候需要我们设置每行行间距。 TextView为我们提供了相关设置属性android:lineSpacingExtra或android:lineSpacingMultiplier。

  • 2018-11-26 21:47:55

    Drawable一个有趣的属性:tileMode

    tileMode是drawable 资源文件 bitmap的一个属性, 翻译的意思是平铺模式。用法如下: 在drawable目录下新建一个资源文件 tile_mode_demo.xml

  • 2018-11-28 09:55:53

    android radiogroup样式(设置切换背景与文字颜色)

    RadioButton(单选按钮)在Android开发中应用的非常广泛,比如一些选择项的时候,会用到单选按钮。它是一种单选框双状态的按钮,可以选择或不选择。在RadioButton没有被选中时,用户能够按下或点击来选中它。