2014-10-03 77 views
0

我需要实施SEP 2014,OCT 2014,NOV 2014等输入日期是否为当前月份的逻辑。我已经写了下面的逻辑来检查所选择的一周是否是当前周或不使用下面的方法,但不能实施当月Java日期输入日期为字符串的转换问题2014年10月

public static boolean isCurrentWeek(Date date, Date dateStart, Date dateEnd) 

{ 

    if (date != null && dateStart != null && dateEnd != null) { 


     if(date.equals(dateStart) || date.equals(dateEnd)){ 


      return true; 


     }else if (date.after(dateStart) && date.before(dateEnd)) { 


      return true; 


     } 


     else { 


      return false; 

     } 

    } 
    return false; 
} 
+1

您有本周的代码,并且您正试图找出当前的月份版本,到目前为止您尝试过了什么?发布*代码。 – rolfl 2014-10-03 14:05:14

回答

0

我想你可以用类似这样的代码解决您的问题:

String target = "Oct 2000"; 
DateFormat df = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH); 
try{ 
    Date date = df.parse(target); 
    Calendar calendar = Calendar.getInstance(); 
    Calendar targetCalendar = Calendar.getInstance(); 
    targetCalendar.setTime(date); 
    System.out.println(targetCalendar.get(Calendar.MONTH) == calendar.get(Calendar.MONTH)); 
} catch (ParseException e){ 
} 

字符串target是你的输入,如“九月2014" 。该字符串被解析为Date,然后用于在Calendar对象中设置时间。第二个Calendar包含当前时间。检查两个日历是否符合他们的月份是System.out.println电话。

+0

Stefan,你的代码只检查一个月,但不是一年,例如,如果我通过String target =“Oct 2000”和当前的月份是2014年10月,其将恢复正常。它应该比较一年以及 – 2014-10-03 14:38:04

+0

我已经修改了你的如下,它的工作良好公共静态布尔isCurrentMonth(String dateStart)抛出ParseException { \t \t DateFormat df = new SimpleDateFormat(“MMM yyyy”,Locale.ENGLISH); \t \t日期日期= df.parse(dateStart); \t \t Calendar calendar = Calendar.getInstance(); \t \t日历targetCalendar = Calendar.getInstance(); \t \t targetCalendar.setTime(date); (日历.MONTH)== calendar.get(Calendar.MONTH)&& targetCalendar.get(Calendar.YEAR)== calendar.get(Calendar.YEAR)); \t} – 2014-10-03 14:41:11

+0

在你的问题中,你只是要求在当月的比赛(你写道:“是当前月份或不是。”)。正如你已经知道的那样,代码可以很容易地扩展到检查年份:)所以,我认为这个解决方案适用于你,请投票。 – 2014-10-03 14:48:36

1

试试这个阿帕奇百科全书:

DateUtils.truncatedEquals(date, new Date(), Calendar.MONTH); 

它返回如果两个日期在同一个月,则为true

编辑

也许这样的:

public static boolean isInCurrentMonth(String inputDateString) { 
    SimpleDateFormat sdf = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH); 
    try { 
     Date inputDate = sdf.parse(inputDateString); 
     return DateUtils.truncatedEquals(new Date(), inputDate, Calendar.MONTH); 
    } catch (ParseException e) { 
     // error handling 
    } 
} 
+0

我在日历上有两个日期,startDate =“2014年10月”,结束日期也是一样的,所以我在String中获得了这个值,但是无法弄清楚如何获得选中的第一天和最后一个月 – 2014-10-03 14:14:31

+0

Basicaly我需要检查今天的日期是否在一个月的开始日期和结束日期之间。但因为我得到一个字符串OCT 2014作为开始日期和结束日期,我不能解析它到日期格式 – 2014-10-03 14:16:07

相关问题