首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android.provider.CallLog.Date失败的比较

android.provider.CallLog.Date失败的比较
EN

Stack Overflow用户
提问于 2013-02-03 21:44:24
回答 1查看 103关注 0票数 0

当我在下面的代码中不进行比较时,它可以工作,但是如果进行这种比较,它就会失败。

感谢Oleg,更新的代码和他的观点。与月份0-11不同,日期范围为1-31,日期( int、int、int)由Date(long)代替。

编辑代码

代码语言:javascript
复制
Calendar cal = Calendar.getInstance();
    cal.add(Calendar.MONTH, -1);

    int month = cal.get(Calendar.MONTH);
    int year = cal.get(Calendar.YEAR);
    int day=cal.get(Calendar.DATE); // for dynamic reset rates


    callSince.setText("since(dd/mm/yyyy) :" + day + "/" + (month+1) + "/"  + year );
        // month+1 because month {0-11}

    Date resetDateDate = new Date(cal.getTimeInMillis());


    Calendar resetDateCal = Calendar.getInstance();
    resetDateCal.setTime(resetDateDate);
    String resetDate = String.valueOf(resetDateCal.getTimeInMillis());

    /*
     * CALL INCOMING
     */

    projection = new String[] {CallLog.Calls.DURATION };
    selection = CallLog.Calls.TYPE + "=? AND " + CallLog.Calls.DATE + " >=?" ;
    selectionArgs = new String[] { (String.valueOf(CallLog.Calls.INCOMING_TYPE)) , (resetDate) };

    try
    {
        Cursor cIn = getContentResolver().query(CallLog.Calls.CONTENT_URI, projection, selection, selectionArgs, sortOrder);
        startManagingCursor(cIn);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-03 21:50:26

你可以在这里看到,从一月减去1的结果是-1,而不是12月。要解决这个问题,请使用java.util.Calendar类的add()方法来处理正确字段的滚动。例如:

代码语言:javascript
复制
myCalendar.add(Calendar.MONTH, -1);

只有在处理完日历之后,才能检索日历的实际字段。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14677645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档