Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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/3/android/185.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
Java 如何在android中每周统计日期数组列表中的条目_Java_Android_Arraylist - Fatal编程技术网

Java 如何在android中每周统计日期数组列表中的条目

Java 如何在android中每周统计日期数组列表中的条目,java,android,arraylist,Java,Android,Arraylist,我有: 我的目标是从列表中的第一个日期开始每周(7天)统计条目。有什么办法吗 我就是找不到实现这样一个目标的计划。如何移动?一个简单的方法是首先对列表进行排序,然后迭代项目并跟踪每周计数 2016-05-01, 2016-05-01, 2016-05-01, 2016-05-02, 2016-05-03, 2016-05-04, 2016-05-04, 2016-05-04, 2016-05-01, ... ETC long WEEK_IN_MILLIS=7*24*60*60*1000; 列出

我有:

我的目标是从列表中的第一个日期开始每周(7天)统计条目。有什么办法吗


我就是找不到实现这样一个目标的计划。如何移动?

一个简单的方法是首先对列表进行排序,然后迭代项目并跟踪每周计数

2016-05-01, 2016-05-01, 2016-05-01, 2016-05-02, 2016-05-03, 2016-05-04, 2016-05-04, 2016-05-04, 2016-05-01, ... ETC
long WEEK_IN_MILLIS=7*24*60*60*1000;
列出日期=。。。
集合。排序(日期);
int weekNumber=1;
int计数器=0;
Date weekStart=null;
(日期:日期){
if(weekStart==null){
weekStart=日期;
}
否则{
长间隔=date.getTime()-weekStart.getTime();
如果(间隔>周,单位:毫秒){
System.out.printf(“周%s中有%s个日期”,周号,计数器);
weekNumber++;
weekStart=日期;
计数器=0;
}
}
计数器++;
}

编辑:将
系统中的
计数器-1
更改为
计数器
。我们的.printf
语句

告诉我您已经考虑了解决方案,如果以固定的日期(如星期一)划分周数,我很乐意提供帮助?或者我们应该从列表中最早的日期开始计算7天的周期吗?解析为某种日期类型(日历)。。。按年度分组,然后按年度周分组。。。计算组中的Meber数。。。似乎是一个基本的编程练习重点是我找不到一个开始的方法,我不得不将这个列表字符串更改为日期列表,但我就是找不到下一步。。我想我可以根据周数将大列表划分为子列表,然后为每个列表获取list.size()。。但问题是我不知道我需要多少子列表,因为日期范围总是不同的!我还想,如果我可以做一个循环,将第一个条目放入日历中,然后向前移动7天。。但我不知道如何在这一点上划分列表。@Adrian Koster,不,我只需要从最长的一个开始算起7天。非常感谢Adrian,这实现了我的目标,我只需将其更改为间隔>=周(单位:毫秒)。。不包括下周的第一天。非常感谢再看一眼。我认为应该保留>但您应该使用
计数器
而不是
计数器-1
2016-05-01, 2016-05-01, 2016-05-01, 2016-05-02, 2016-05-03, 2016-05-04, 2016-05-04, 2016-05-04, 2016-05-01, ... ETC
long WEEK_IN_MILLIS = 7 * 24 * 60 * 60 * 1000;
List<Date> dates = ...
Collections.sort(dates);
int weekNumber = 1;
int counter = 0;
Date weekStart = null;
for(Date date : dates) {        
    if (weekStart == null) {
        weekStart = date;          
    }
    else {
        long interval = date.getTime() - weekStart.getTime();
        if (interval > WEEK_IN_MILLIS) {
            System.out.printf("Week %s has %s dates in it", weekNumber, counter);
            weekNumber++;
            weekStart = date;
            counter = 0;
        }
    }
    counter++;
}