2014-10-03 76 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

相關問題