当前位置: 技术问答>java相关
请教一个关于得到一个时间段内,按星期排列的日期的算法,请近来看看哦
来源: 互联网 发布时间:2015-09-28
本文导语: 任意输入一个月份,从而得到了这个月份的每天的数据,一天一条(有日期),从小到大排序了,但不见得是从1-31或者1-30,这样的,可能该月只有5-9,12-21号的记录 我现在要把这个月的数据,按当月自然周,统计出来...
任意输入一个月份,从而得到了这个月份的每天的数据,一天一条(有日期),从小到大排序了,但不见得是从1-31或者1-30,这样的,可能该月只有5-9,12-21号的记录
我现在要把这个月的数据,按当月自然周,统计出来,就是所想得到(比如这个10月的)
周数 日期(星期日-星期六) 统计(次)
第一周 10-01---10-05 20
第二周 10-06---10-12 40
.......
第五周 10-27--10--31 23
这样的记录,统计在其次,关键,是把从数据库里得到的不定的日期按自然周排列出来。
我自己的方法写了一半,觉得太罗嗦,考虑了第一条记录的日期是否为1号啦,是否又为
星期日啦,然后慢慢循环累计。。 太麻烦。
请问那位高人有好的算法???
我现在要把这个月的数据,按当月自然周,统计出来,就是所想得到(比如这个10月的)
周数 日期(星期日-星期六) 统计(次)
第一周 10-01---10-05 20
第二周 10-06---10-12 40
.......
第五周 10-27--10--31 23
这样的记录,统计在其次,关键,是把从数据库里得到的不定的日期按自然周排列出来。
我自己的方法写了一半,觉得太罗嗦,考虑了第一条记录的日期是否为1号啦,是否又为
星期日啦,然后慢慢循环累计。。 太麻烦。
请问那位高人有好的算法???
|
我不是很清楚你的数据怎么的。但是应该不算是很难吧
Calendar cal = Calendar.getInstance();
int month = 2;//记得月份是0-11,不是1-12
cal.set(Calendar.MONTH, month);
cal.getTime();
for(int i = 1;; i++) {
cal.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);
cal.set(Calendar.DAY_OF_WEEK_IN_MONTH,i);
getCount(cal.getTime());//得到在cal.getTime()之前和在上次调用之后的统计值
if(month != cal.get(Calendar.MONTH))
break;
}
Calendar cal = Calendar.getInstance();
int month = 2;//记得月份是0-11,不是1-12
cal.set(Calendar.MONTH, month);
cal.getTime();
for(int i = 1;; i++) {
cal.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);
cal.set(Calendar.DAY_OF_WEEK_IN_MONTH,i);
getCount(cal.getTime());//得到在cal.getTime()之前和在上次调用之后的统计值
if(month != cal.get(Calendar.MONTH))
break;
}
|
帮你顶。。。
|
don't know