我正在尝试获取给定两个日期和日期之间的日期,例如

日期范围20/04/2014-210/05/2015

在这些日期之间,例如,我应该打印星期一至星期五之间的日期。 这是我开发的代码:

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date startDate = (Date) formatter.parse("20/04/2014");
Date endDate = (Date) formatter.parse("10/05/2014");

Calendar cal = Calendar.getInstance();
Calendar cal1 = Calendar.getInstance();

cal.setTime(startDate);
cal1.setTime(endDate);

while (!cal.equals(cal1)) {
    cal.add(Calendar.DATE, 1);
    if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY|| cal1.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY) {
        System.out.println(formatter.format(cal.getTime()));
        System.out.println(formatter.format(cal1.getTime()));
    }
    //System.out.println(formatter.format(cal.getTime()));

}

我应该看到的是:

21/04/2014(Monday)    
22/04/2014(Tuesday)    
23/04/2014(Wednesday)    
24/04/2014(Thursday)    
25/04/2014(Friday)    
28/04/2014(Monday)    
29/04/2014(Tuesday)    
30/04/2014(Wednesday)    
01/05/2014(Thursday)    
02/05/2014(Friday)    
05/05/2014(Monday)    
06/05/2014(Tuesday)    
07/05/2014(Wednesday)    
08/05/2014(Thursday)    
09/05/2014(Friday)

但是我得到的是:

21/04/2014    
20/05/2014    
28/04/2014    
20/05/2014    
05/05/2014    
20/05/2014    
12/05/2014    
20/05/2014    
19/05/2014    
20/05/2014

===============>>#1 票数:2

一些问题

  • 您将重复使用相同的DateFormat来解析缺少所需的日( E )模式的输入数据String 用模式dd/MM/yyyy (EEEE)创建一个单独的SimpleDateFormat以显示输出。
  • 仅当一天是星期一或星期五时才输出,而只有周末时才输出。
  • 不需要显示变量cal1的输出

例:

while (!calendar1.equals(calendar2)) {
    calendar1.add(Calendar.DATE, 1);
    if (!(calendar1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) &&
               !calendar2.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)) {
        System.out.println(outputFormatter.format(calendar1.getTime()));
    }
}

===============>>#2 票数:2

您可以使用EEEE打印日期名称。

formatter = new SimpleDateFormat("dd/MM/yyyy(EEEE)");
System.out.println(formatter.format(cal.getTime()));

  ask by Tugrul ASLAN translate from so

未解决问题?本站智能推荐:

4回复

如何比较Java中的两个不同日期?

我想比较两个不同的日期,并且无论两个日期是否相同,都要这样做? 我怎样才能做到这一点? 假设所有上述日期都有不同的值,我想比较d1,d2,d3和d4之间的日期。 即使他们代表相同的日期。 这可能吗?
2回复

如何从Java中的两个不同日期获取时间(hh:mm:ss)

我从两个不同的日期获取毫秒,试图将毫秒转换为时间戳。 我写了下面的代码。 for循环将花费2或3秒,结果可能是00:03:80,但是我的结果总是 但实际差异是2或3秒,这是正确的方法还是其他方法?
3回复

java / android中的不同日期

当我在纯Java和android中执行此代码时,会得到不同的结果: System.out.println(new Date(1311940549187l).toString()); 在纯Java中,我得到以下输出: Fri Jul 29 13:55:49 CEST 2011
2回复

计算Java中两个日期之间的天数

我有一个代码,格式有2个日期 我想计算两个日期之间的天数。 我不能用Joda包。 有没有办法在2个日期中获得日差?
1回复

在java中获取两个日期之间的天数

这个问题已经在这里有了答案: 计算两个Java日期实例之间的差异 45个答案 用Java计算日期/时间差[重复] 17个答案 嗨,我有两个日期格式的日期,我怎么得到两者之间的日期差?
8回复

检查日期是否在Java中的两个日期之间[重复]

这个问题在这里已有答案: Java:如何检查Date是否在一定范围内? 10个答案 我想知道的一件事是如何计算从今天起10天的日期。 第二件事是检查一个日期是否在另外两个日期之间。 例如,假设我有一个应用程序,显示我在接下来的10天内需要做的事情(计划员)
1回复

如何在Java中获取两个日期之间的替代日期?

在我的Java应用程序中,我使用以下代码打印两个日期之间的所有日期。 但我想要2种日期类型,如...。 获取替代日EX: 2012-12-01 2012-12-03 2012-12-06 我想在给定的两个日期中仅打印星期六和星期日。 实际上我正在尝试打印i+1
2回复

查找Java中两个日期之间的差异[重复]

这个问题在这里已有答案: Java中两个日期之间的天数差异? 20个答案 我在JFrame使用Java for Date中的两个JFormattedTextFields 。 我以格式(DD/MM/YYYY)格式化它们。 我怎样才能在几天内发现它们之间的差异
4回复

计算java中两个日期之间的天数[重复]

这个问题在这里已有答案: Android / Java - 日期差异 18 天 答案 我需要计算两个日期之间的天数,我使用下面的代码。 问题是它返回我2但实际上它应该返回3因为2016年6月30日到6月27日之间的差异是3.你能帮助它应该包括当前日期以及差异吗?
1回复

Java 7中两个日期的月份和月份之间的差异

我想计算两个日期(以月和天为单位)之间的差额,我不想考虑一个月是30天,以毫秒为单位获取时间并将其转换,也不想使用Joda之类的库,并且我还找到了一个使用LocalDate的解决方案,但是我使用的是Java7。我在寻找问题的答案,但找不到任何答案,并且尝试了许多方法,尝试创建日历并以毫秒为单位来