2017-04-18 92 views
-7

我需要一個java邏輯來檢查某個日期(讓我們假設18-04-2017)是否落在當前的一週。 我們還有一年4季度 (一月,二月,三月) - 一季度 (四月,五月,六月) - 二季度 因此,我需要知道這個相同的日期是否落在當前季度。 歡迎任何答覆如何檢查日期是否在某個星期或季度

+2

你有試過什麼嗎? – tnw

+0

不應該被關閉爲「太寬泛」,因爲它非常具體。但是它應該作爲許多問題的重複來關閉,如果某個日期處於一個範圍之內,那麼這個問題就會在測試中出現。提示:'org.threeten.extra.YearQuarter :: atDay'和':: atEndOfQuarter'。 –

回答

3

我會說做這些步驟,

1 - 找出第一個和最後一週 Get current week start and end date in Java - (MONDAY TO SUNDAY)

2日 - 檢查日期是範圍還是痛苦落在 Java: how do I check if a Date is within a certain range? - 如果是,它落在 一週 - 如果沒有,它不

3 - 做宿舍一樣,有開始和結束日期,並檢查日期在betwe無論他們是否

//import java.util.*; 
    //import java.text.*; 

public static void main(String[] args) { 

    try { 
     SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 

     Date dateToTest = sdf.parse("18/04/2017"); 

     //lets assume the date source is a variable, hence extract year off of it 

     String firstDateInString = "01/04/" + Integer.toString(getYear(dateToTest)); 
     String secondDateInString = "01/07/" + Integer.toString(getYear(dateToTest)); 
     String thirdDateInString = "01/10/" + Integer.toString(getYear(dateToTest)); 

     Date firstDate = sdf.parse(firstDateInString); 
     Date secondDate = sdf.parse(secondDateInString); 
     Date thirdDate = sdf.parse(thirdDateInString); 


     //check if in first quarter 
     //if date is before April it has to be first Q 
     if (dateToTest.before(firstDate)) { 
      System.out.println("First Quarter"); 
      return; 
     } 
     //check if in second quarter 
     //if date is before August it has to be first Q 
     if (dateToTest.before(secondDate)) { 
      System.out.println("Second Quarter"); 
      return; 
     } 

     //check if in 3rd quarter 
     //if date is before August it has to be first Q 
     if (dateToTest.before(thirdDate)) { 
      System.out.println("third Quarter"); 
      return; 
     } 

     //well then the date must be in 4th quarter 
     System.out.println("Fourth quarter"); 
    } catch (Exception err) { 
     System.out.println(err); 
    } 
} 

private static int getYear(Date date) { 
    Calendar cal = Calendar.getInstance(); 
    cal.setTime(date); 
    return cal.get(Calendar.YEAR); 

} 

免責聲明:此代碼不是最佳方法。請注意,這裏我不假定當前的日期或年份。這裏的目的是僅顯示一般策略。

+0

謝謝..實施周..現在需要找出一個辦法的宿舍... – shahed

+0

嗨@shahed請檢查更新的答案爲示例。請注意,該示例不直接回答您的問題。你仍然需要做一些工作來檢查今年的季度。我希望它可以幫助:) –

+0

我認爲這有助於達到目的..感謝Samip Sir .. 我會嘗試給你反饋 – shahed

相關問題