2013-04-07 118 views
1

我无法找出问题所在。我必须创建一个存储进出费用数据的银行系统,到目前为止,我已经创建了一个数组对象,每个对象都保存了名称,金额和几周时间,例如4.如果我知道这个费用每4周发生一次,我如何自动生成从今年1月开始到结束的日期,例如工资+4000,1/1/12,工资+4000,29/1/12等等?Java - 创建日期列表

如果我知道它应该每X周发生一次,我该如何自动生成日期列表?

+0

多少天在4周内有哪些?从那以后,你可以在计数器变量上做一个简单的增量。最后,你需要找到一年中第n天的日历日期。我建议你放下笔记本电脑,拿起日历来寻找如何完成这最后一步的想法。 – 2013-04-07 21:54:00

回答

-1

您可以使用Java日历类。

Calendar date= Calendar.getInstance(); 
ArrayList<Calendar> dates = new ArrayList<>(); 

for (int i=0; i<10; i++) 
{ 
    date.add(Calendar.WEEK_OF_YEAR, 4); 
    dates.add(date); 
} 
+1

'now'是什么?它在哪里定义? – 2013-04-07 22:04:14

+0

对不起,现在按日期替换(我更改了变量的名称) – 2013-04-07 22:37:20

+0

此代码无效。生成的'dates' ArrayList中的所有日期都是相同的。 – stackoverflowuser2010 2015-07-11 19:05:03

0

这是@Héctorvan den Boorn的改进答案。

Calendar date= Calendar.getInstance(); 
ArrayList<Calendar> dates = new ArrayList<>(); 

for (int i=0; i<10; i++) 
{ 
    date.add(Calendar.WEEK_OF_YEAR, 4); 
    // Create new instance of cal 
    Calendar tmp= Calendar.getInstance(); 
    //Makes its inner values the same 
    tmp.setTime(date.getTime()); 
    // Add unique instance to list 
    dates.add(tmp); 
}