zoukankan      html  css  js  c++  java
  • 大二寒假作业账本开发

    今日修复了账本的一些BUG:

    首先是日期选择对话框的BUG:填写日期编辑框会默认自动填写今日日期,但是当打开日期选择对话框时会发现对话框的日期总是比正确的日期多一个月。

    这应该是日期类的月份是从0开始,以及DatePickerDialog的onDateSet函数的缘故,将代码作如下修改:

    CDateTime dt=new CDateTime();
                DatePickerDialog dlg=new DatePickerDialog(this,new DatePickerDialog.OnDateSetListener(){
                    @Override
                    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                        txtFrom.setText(String.format("%d-%d-%d",year,month+1,dayOfMonth));//此处月+1
                    }
                },dt.year(),dt.month()-1,dt.day());//此处月份-1,注意dt.month()返回的为正常月份。
                dlg.show();

    接着就是月份最后一天账目的显示错误:如果是在月份的最后一天添加账目的话,点击本月时并不会将本月最后一天的账目显示出来,本年的最后一天的账目也是无法在当年中显示。

    初步确认时查询的范围出现的错误,经测试在本月第一天添加的账目可以正常显示,将范围的最后一天加1就可解决这个问题。下面为修改后的代码:

      CDateTime dt=new CDateTime(msec);
                int year =dt.year();
                int month=dt.month();
                CDateTime dtStart=new CDateTime(year,month,1);
                CDateTime dtEnd=new CDateTime(year,month,daysInMonth(year,month));
                return String.format("between %d and %d",dtStart.startOfDay(),dtEnd.endOfDay()+MSEC_PER_DAY);//注意加的为MSEC_PER_DAY而不是1,因为是以毫秒值判断的日期范围。
  • 相关阅读:
    自定义Android核心服务实践
    RootExplorer怎么样获取root权限的
    android性能测试工具之dumpsys
    gettimeofday() 获取当前时间(保存在结构体timeval中)
    Android学习之Service命令的妙用
    linux内存管理之非连续物理地址分配(vmalloc)
    Android dumpsys
    Linux下进程信息的深入分析
    Android调试工具之adbs
    如何分析Android的内存使用
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/14458703.html
Copyright © 2011-2022 走看看