2017-03-07 78 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'方法。 –