Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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/0/laravel/10.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 如何输出周期开始和周期结束之间的所有月份。使用日历类_Java_Date_Calendar - Fatal编程技术网

Java 如何输出周期开始和周期结束之间的所有月份。使用日历类

Java 如何输出周期开始和周期结束之间的所有月份。使用日历类,java,date,calendar,Java,Date,Calendar,我正在创建使用此类检索当前日期的程序。为了解决这个问题,我需要回到过去。例如,今天是2013年11月3日,用户选择18个月,因此我使用以下代码: Calendar ca =Calendar.getInstance(); ca.add(Calendar.MONTH, -n); 其中n变量表示用户输入(月)。效果很好。 但现在我想检索每个月,并在屏幕上显示如下: September,2012 October,2012 ..... ..... November, 2013 我试图创建循环,但我不明

我正在创建使用此类检索当前日期的程序。为了解决这个问题,我需要回到过去。例如,今天是2013年11月3日,用户选择18个月,因此我使用以下代码:

Calendar ca =Calendar.getInstance();
ca.add(Calendar.MONTH, -n);
其中n变量表示用户输入(月)。效果很好。 但现在我想检索每个月,并在屏幕上显示如下:

September,2012
October,2012
.....
.....
November, 2013
我试图创建循环,但我不明白如何才能真正使每次循环运行的开始日期增加1个月。 更新:

inti=0;
Calendar ca=Calendar.getInstance()//伊格斯塔姆·帕什雷兹·乔·莱库
ca.add(日历月份,-n);
ca.set(日历日/月,1);
while(i0){
output.format(“%-10s%-20s%-20s%-20s%-20s%-20s%-20s%-20s%-20s%-20s\n”,
年,
月,
record.getIncome(),
record.getAtv(),
record.getSumAtv(),
iedz,soc_apd,netto);//空指针异常
}
其他的
{
系统输出打印(“Kļūda alga ievadīta zem 0”);
input.nextLine();
}           
}
catch(FormatterClosedException FormatterClosedException){
系统错误println(“Kļūda rakstot failā”);
返回;
}
catch(NoSuchElementException元素异常){
系统错误打印(Nepareizs ievads.Mēģiniet vēlreiz);
input.nextLine();
}
//System.out.printf(“%s\n”,“Ievadiet mēneša ienākumus”);
ca.add(日历月,1);
i++;
}
谢谢:)

日历ca=Calendar.getInstance();//这是现在 //将日期设置为每月的第一天,以避免在当前日期为31时发生意外。 ca.set(日历日/月,1); //在本月1日前n个月离开 ca.add(日历月份,-n); 对于(int i=0;i一切都很好,但本月我得到的数字是9而不是11。这可能是我周期中的问题?我添加了更多的代码。因为我们是在11月份,所以在日历API中,您应该得到10个(月份是以0为基础的)。您的意思是最后打印的月份是9吗?如果是这样,您只需要在循环中再进行一次迭代。
for(int I=0;I
int i =0;
    Calendar ca =Calendar.getInstance();//iegūstam pašreizējo laiku
    ca.add(Calendar.MONTH, -n);
    ca.set(Calendar.DAY_OF_MONTH, 1);

while (i<n)
        {


            int month_n = ca.get(Calendar.MONTH);   
            int year_n = ca.get(Calendar.YEAR);

            try {//iegūstam datus ko rakstīt failā
                //record.setDate(5);//uzstādam vērtības
                record.setIncome(input.nextDouble());
                record.setAtv(atv_sum);
                record.setSumAtv(atv_sum+45.00);
                double iedz=(((record.getIncome()-record.getSumAtv())/100)*24);//iedz ienakuma nodoklis
                double soc_apd=(((record.getIncome()-record.getSumAtv())/100)*11);//sociālās apdr.nodoklis
                double netto =record.getIncome()-(iedz+soc_apd);

            if(record.getIncome()>0){
                    output.format("%-10s%-20s%-20s%-20s%-20s%-20s%-20s%-20s\n",
                                year_n,
                                month_n,
                                record.getIncome(),
                                record.getAtv(),
                                record.getSumAtv(),
                                iedz,soc_apd,netto);//null pointer exception
                                     }
            else
            {
                System.out.println("Kļūda alga ievadīta zem 0");
                input.nextLine();
            }           
            }
            catch ( FormatterClosedException formatterClosedException ){
                System.err.println("Kļūda rakstot failā");
                return;
            }
            catch (NoSuchElementException elementException){
                System.err.println("Nepareizs ievads. Mēģiniet vēlreiz");
                input.nextLine();
            }
        //  System.out.printf("%s  \n", "Ievadiet mēneša ienākumus ");
            ca.add(Calendar.MONTH, 1);
                i++;

        }
Calendar ca = Calendar.getInstance(); // this is NOW

// set the date to the first of the month, to avoid surprises if the current date is 31.
ca.set(Calendar.DAY_OF_MONTH, 1);

// go n months before the first of this month
ca.add(Calendar.MONTH, -n);

for (int i = 0; i < n; i++) {
    // todo: format the date as you want and print it. See SimpleDateFormat

    // go to the next month
    ca.add(Calendar.MONTH, 1);
}