java循环变量,使用Java中的循环创建变量名?

first time poster, long time reader so be gentle with me :)

See the following code which works to generate me timestamps for the beginning and end of every month in a financial year.

int year = 2010;

// Financial year runs from Sept-Aug so earlyMonths are those where year = FY-1 and lateMonths are those where year = FY

int[] earlyMonths = {8, 9, 10, 11}; // Sept to Dec

int earlyYear = year -1;

for (int i : earlyMonths) {

month = i;

Calendar cal = Calendar.getInstance();

cal.clear();

cal.set(earlyYear,month,1,0,0,0);

Long start = cal.getTimeInMillis();

cal.clear();

cal.set(earlyYear,month,1);

lastDayofMonth = cal.getActualMaximum(GregorianCalendar.DAY_OF_MONTH);

cal.set(earlyYear,month,lastDayofMonth,23,59,59);

Long end = cal.getTimeInMillis();

}

int[] lateMonths = {0, 1, 2, 3, 4, 5, 6, 7}; // Jan to Aug

for (int i : lateMonths) {

month = i;

Calendar cal = Calendar.getInstance();

cal.clear();

cal.set(year,month,1,0,0,0);

Long start = cal.getTimeInMillis();

cal.clear();

cal.set(year,month,1);

lastDayofMonth = cal.getActualMaximum(GregorianCalendar.DAY_OF_MONTH);

cal.set(year,month,lastDayofMonth,23,59,59);

Long end = cal.getTimeInMillis();

}

So far so good, but in order to use these results I need these timestamps to be output to variables named by month (to be used in a prepared statement later in the code. e.g. SeptStart = sometimestamp, SeptEnd = some timestamp etc etc.

I don't know if it is possible to declare new variables based on the results of each loop. Any ideas?

解决方案

Why not use a Map?

After all you want to have a "container" for some value and address it with a specified name.

So just make the "variable name" your key and "variable value" your, ehm, value.

Edited because you wanted a Sorted collection:

First of all, go for a Treemap instead of a Map.

Also, to preserve lexicograph order, normalize your month number padding zeroes to the left, and use "begin" and "end" as delimiters

So you will have:

01_begin

01_end

02_begin

...

10_begin

10_end

...

which will get printed in the correct order when you visit the treemap.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值