2017-03-07 102 views
-2

我想比較當前日期的日期,沒有采取一年進去了,我想改變文本的每一天如何比較當前日期的任何日期,不考慮今年考慮

這裏是我的代碼

TextView textView = (TextView)findViewById(R.id.textView); 

     String valid_until = "7/3"; 
     String valid_until1 = "8/3"; 
     String valid_until2 = "9/3"; 
     String valid_until3 = "10/3"; 

     SimpleDateFormat sdf = new SimpleDateFormat("dd/MM"); 
     Date strDate = null; 
     Date strDate1 = null; 
     Date strDate2 = null; 
     Date strDate3 = null; 


     try { 
      strDate = sdf.parse(valid_until); 
      strDate1 = sdf.parse(valid_until1); 
      strDate2 = sdf.parse(valid_until2); 
      strDate3 = sdf.parse(valid_until3); 


     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
     if (new Date() == (strDate)) { 
      textView.setText("7 m"); 
     } 
     if (new Date() == (strDate1)) { 
      textView.setText("8 m"); 
     } 
     if (new Date() == (strDate2)) { 
      textView.setText("9 m"); 
     } 
     if (new Date() == (strDate3)) { 
      textView.setText("10 m"); 
     } 
+0

重複的:如何當天和一個月一天和一個月的java比較 (http://stackoverflow.com/a/39231958/642706) –

回答

-1

TL;博士

MonthDay.now(ZoneId.of("America/Montreal")) 
     .equals(MonthDay.of(Month.JULY , 3)) 

詳細

硒e my Answer上的重複問題以獲取詳細信息。這裏簡要概括...

避免麻煩的舊的遺留類Date & SimpleDateFormat像瘟疫一樣。它們已被java.time類取代。在ThreeTenABP項目中,大部分java.time已被移植到Android中。

請勿重複捕獲當前日期。如果你的代碼要在午夜之後運行,那麼隨着日期的改變你會得到不一致的結果。

java.time.MonthDay類可以解決您的問題,以及LocalDateZoneId

​​

爲了解決您的具體問題,我會做Month枚舉對象和環的集合。搜索堆棧溢出瞭解更多關於EnumSet的信息。

EnumSet<Month> months = EnumSet.range(Month.JULY , Month.OCTOBER); 
for (Month month : months) { 
    MonthDay md = MonthDay.of(month , 3) ; 
    if(md.equals(mdCurrent) { 
     … 
     break; // Break out of the 'for' loop. No need to continue looping. 
    } 
} 

爲了產生字符串,調用MonthDay::format並傳遞一個DateTimeFormatter對象。搜索堆棧溢出瞭解更多關於DateTimeFormatter的信息,數百個問題&答案。

+0

親愛的向下選民,請隨你的投票一起批評。 –

+0

你可以給我看一個比較幾天和當前日期的例子......這樣我就可以打印出每天的文字了嗎?我需要程序來顯示一年中每一天的日出和日落時間... –

+0

@МухаммаднакшубандиОмаров我已經顯示比較多個月份的日期對象。查看EnumSet代碼。而「一年中的每一天」都是一個不同的問題,在其他堆棧溢出問題中已經提出並回答了這個問題。請參閱['Year'](https://docs.oracle.com/javase/8/docs/api/java/time/Year.html)類及其'atDay'&'length'方法。 –