Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android使用for循环将日期添加到日历_Android_Arrays_Database_Calendar - Fatal编程技术网

Android使用for循环将日期添加到日历

Android使用for循环将日期添加到日历,android,arrays,database,calendar,Android,Arrays,Database,Calendar,我有一个按升序填充了数据库表id的数组。现在,在一个列表中,将更多数据提取到另一个数据库表中,该表中的字段与上一个表中的记录相同。一个例子 int[]id_nome_op;//例如,包含数据(1,2,3) 现在我想将此数组与从另一个表中获取的数据进行比较(用于比较的列中有一个具有相同数组值的字段),然后第一次匹配如果它们相等,我想在今天的日历上设置日期 当值更改时,我希望将日期设置为今天+1 当值再次更改时,我想将日期设置为今天+2,以此类推。我希望我能解释一下: @Override publi

我有一个按升序填充了数据库表id的数组。现在,在一个列表中,将更多数据提取到另一个数据库表中,该表中的字段与上一个表中的记录相同。一个例子

int[]id_nome_op;//例如,包含数据(1,2,3)

现在我想将此数组与从另一个表中获取的数据进行比较(用于比较的列中有一个具有相同数组值的字段),然后第一次匹配如果它们相等,我想在今天的日历上设置日期

当值更改时,我希望将日期设置为今天+1 当值再次更改时,我想将日期设置为今天+2,以此类推。我希望我能解释一下:

@Override
public List<WkVvent> onMonthChange(int newYear, int newMonth) {
SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd");
    final String strDate = simpleFormat.format(calendarioFooter.getTime());


SQLiteDatabase db = new DatabaseHelper(getActivity()).getReadableDatabase();
        String tabella_op = "SELECT m.id_altra_tabella .....ORDER BY ASC ";
Cursor cur = db.rawQuery(tabella_op, null);
        while (cur.moveToNext()) {
        startTime = (Calendar) calendarioFooter.clone();
        id_altra_tabella = cur.getInt(0);

  for (int i = 0; i < id_nome_op.length; i++) {
            if (id_altra_tabella == id_nome_op[i]) {
                startTime.set(Calendar.DAY_OF_MONTH, 9);
            } else if (id_altra_tabella> id_nome_op[i]) {
                startTime.add(Calendar.DATE, 1);
            }
        }
..
..
..
}
@覆盖
每月更改的公共列表(整年、整月){
SimpleDataFormat simpleFormat=新SimpleDataFormat(“yyyy-MM-dd”);
最后一个字符串strDate=simpleFormat.format(calendarioFooter.getTime());
SQLiteDatabase db=newdatabasehelper(getActivity()).getReadableDatabase();
String tabella_op=“选择m.id_altra_tabella…..按ASC订购”;
游标cur=db.rawQuery(tabella_op,null);
while(cur.moveToNext()){
startTime=(Calendar)calendarioFooter.clone();
id_altra_tabella=cur.getInt(0);
for(int i=0;iid_nome_op[i]){
startTime.add(Calendar.DATE,1);
}
}
..
..
..
}
这是我的代码,但我没有得到想要的结果

编辑: 我试图解释: 例如,如果数组(int[]id_nome_op;)有三个值(1,2,3),并且在列表中收集的数据相同,即(1,2,3),则我要执行以下操作:
当(id_nome_op)和(id_altra_tabella)等于第一个值(在本例中为1)时,我已将日历设置为今天的日期。当该值更改时(例如2),我需要将今天的日期+1添加到日历中。当再次更改时(例如3)我需要在日历中添加“今天+2”,以此类推。

我怀疑您想要的是.roll()方法的功能,而不是.add()方法。roll将调整月份、年份以及日期。add不会


编辑:我的描述是反向的…

也许我没有完全理解你的问题。你说你没有得到期望的结果。你得到了什么结果?它与你期望的结果有何不同?我想我理解你想要做什么。但是你得到了什么结果?你说它不是期望的结果,但它是真实的不清楚您得到了什么来代替期望的结果。我得到的是,没有根据需要添加日期。也就是说,匹配的第一条记录必须指定当前日期,当它更改时,它必须指定今天的日期+1,而更改时仍然必须指定今天的日期+2。我认为问题在于for循环。感谢您的帮助,您的循环是什么做的是:在每个条目上,如果记录匹配day设置为9,如果id_altra_tabella较大,则会向day添加1。如果id_altra_tabella较小,则不会执行任何操作。正在对表中每个记录的数组中的每个元素进行此比较。如果id_nome_op中的最后一个元素匹配,则day将设置回9 regardl根据您的描述,我不相信这是您想要的行为。仅供参考,诸如和
java.text.simpleDataFormat
等麻烦的旧日期时间类现在已被内置于java 8和java 9中的类所取代。请参阅。将您的问题简化为技术问题的核心。我们是ot在这里为您编写应用程序。目前,您的问题很难理解,如果不是无法理解的话。请参阅。