我是Java的初学者,也是这个网络世界的新手。我需要在我的作业项目中实现如下:
我们需要在输入日期中添加天数,以便创建即将到来的星期一的日期。
示例1:如果DateString = 17/02/2015(星期二),则输出日期= 23/02/2015(星期一)。
示例2:如果DateString = 18/02/2015(星期三),则输出日期= 23/02/2015(星期一)。
示例3:如果DateString = 23/02/2015(星期一),则输出Date = 02/03/2015(星期一)。
输入:日期字符串 输出:即将到来的星期一输入日期字符串
答案 0 :(得分:0)
如果我纠错了,我想以下代码就是你要找的 -
String dateString = "23/02/2015";
Calendar cal=Calendar.getInstance();
DateFormat df=new SimpleDateFormat("dd/MM/yyyy");
Date date = df.parse(dateString);
cal.setTime(date);
cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
cal.add(Calendar.DATE,7);
System.out.println(df.format(cal.getTime()));
答案 1 :(得分:0)
public static void main(String[] args) throws IOException,ParseException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter date(dd/mm/yyyy) : ");
String input = br.readLine();
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Calendar cal = Calendar.getInstance();
Date date = df.parse(input);
cal.setTime(date);
int toAdd = (9 -cal.get(Calendar.DAY_OF_WEEK));
cal.add(Calendar.DATE,toAdd);
System.out.println("coming monday is on: " + cal.getTime());
}
答案 2 :(得分:0)
使用Java 8,您可以使用TemporalAdjusters:
public String getNextMonday(String date, DateTimeFormatter formatter) {
LocalDate startDate = LocalDate.parse(date, formatter);
LocalDate monday = startDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
return formatter.format(monday);
}
使用
进行通话DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
String nextMonday = getNextMonday("23/02/2015", formatter);