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.