将天数添加到日历

我是这个网站的新手,我才刚刚开始学习Java。我正在尝试将几天添加到GregorianCalendar中,但是它不起作用。在这里…(忽略顶部的块),其底部的添加日期很烦人。

/*

* Author:Matt M

* Date:8.12.13

* Discription: When the user inputs the deadline, and the difficulity of the project,

* the program gives the date he should start working on it

*/

import java.util.*;

public class DeadlinePlanner{

public static void main(String[] args)

{

//take information and restart questions if information is wrong

int month = 0, day = 0 ;

do

{

do

{

System.out.println("Input the month please");

month = (new Scanner(System.in).nextInt() - 1);

System.out.println("Input the day please");

day = (new Scanner(System.in).nextInt());

}

while (!(month <= 12) || !(month >= 0));

}

while (!(day <= 31) || !(month >= 0));

//Make new calender and initialize it

GregorianCalendar setup = new GregorianCalendar();

setup.set(2013, month, day);

System.out.println("The deadline is "+ setup.getTime());

//switch statement to give starting date

System.out.println("Is the project hard or easy?");

Scanner difficulity = new Scanner(System.in);

switch (difficulity.nextLine())

{

case "easy":

setup.add(day, -1);

System.out.print("The date you should start workinng on is ");

System.out.println(setup.getTime());

break;

case "hard":

setup.add(day, -10);

System.out.print("The date you should start workinng on is ");

System.out.println(setup.getTime());

break;

default:

System.out.println("Your answers to the questions are incorrect");

break;

}

}

}

感谢您阅读本文!我欢迎任何反馈…

回答:

这里有太多代码。用户互动过多。

从一种简单的方法开始做一件事,然后在正确的方法上解决。

这是您可能的操作方式:

public class DateUtils {

private DateUtils() {}

public static Date addDays(Date baseDate, int daysToAdd) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(baseDate);

calendar.add(Calendar.DAY_OF_YEAR, daysToAdd);

return calendar.getTime();

}

}

一旦测试并证明了此方法,您就可以让其余的代码调用它。

更新:四年后,JDK 8为我们提供了新的基于JODA的时间包。您应该使用那些类, 而不是 JDK 1.0 Calendar

以上是 将天数添加到日历 的全部内容, 来源链接: utcz.com/qa/412063.html

回到顶部