2016-08-30 97 views
2

我想比較當前日期和給定日期。當前日期格式爲(dd-MM-YYYY)。我不想要今年。假設今天的日期是30-08-2016。我只想得到30-08,我不想要現在的2016年。給定的日期是15-08和31-08。我沒有得到像這個30-08這樣的當前日期。我怎樣才能得到這個,我怎麼能比較?這裏是我的代碼,我曾嘗試:如何比較當前日期和月份與java中的給定日期和月份

Date date1_aug, date2_aug, cur_date; 

String cur_date_string, sDay, sMonth; 

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY"); 


Calendar calendar = Calendar.getInstance(); 
int year = calendar.get(Calendar.YEAR); 
int month = calendar.get(Calendar.MONTH)+1; 
int day = calendar.get(Calendar.DATE); 

sDay = Integer.toString(day); 
sMonth = Integer.toString(month); 

cur_date_string = sDay+"-"+sMonth; 

      try { 
       cur_date = sdf.parse(cur_date_string); 
      } catch (java.text.ParseException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
  1. 另一個功能:

     try{ 
            date1_aug = sdf.parse("15-08"); 
            date2_aug = sdf.parse("31-08"); 
    
            if(cur_date.equals(date1_aug) || cur_date.after(date1_aug) || cur_date.before(date2_aug)){ 
             textView_Amount_LateFee.setText(Config.fine_aug.get(1)); 
            } 
    
    
           }catch(ParseException ex){ 
            ex.printStackTrace(); 
           } 
    
+2

'DD-MM'不是一個完整的日期 – Jens

+1

如果你想比較DD-MM的值(請忽略日期的概念,因爲它不是一個完整的日期),你可以比較的MM價值,然後dd值。 –

+0

謝謝你。通過忽略日期概念解決。 – tanzilamohita

回答

0

您是否嘗試過使用同年要比較的日期?

剛開始使用日曆,設置年份是在兩個Date對象相同,之後對它們進行比較......

如果你想忽略(照顧同躍年)

0

那一年,忘記使用日期概念本身。

String given_date = "15-08"; 

String[] tokens = given_date.split("-"); 

int given_day = Integer.parseInt(tokens[0]); 
int given_month = Integer.parseInt(tokens[1]); 

Calendar c = Calendar.getInstance(); 

int now_month = c.get(Calendar.MONTH) + 1; 
int now_day = c.get(Calendar.DATE); 

System.out.println(given_day + " " + given_month + " " + now_day + " " + now_month); 

if (now_month > given_month) { 
    System.out.println("Before Today!"); 
} else if (now_month < given_month) { 
    System.out.println("After Today!"); 
} else { 
    if (now_day > given_day) { 
     System.out.println("Before Today!"); 
    } else if (now_day < given_day) { 
     System.out.println("After Today!"); 
    } else { 
     System.out.println("Today!"); 
    } 
} 
+0

謝謝。它的工作:) – tanzilamohita

0
function to check dob(with current date) 
/** dob should be in the format yyyy-MM-dd hh:mm:ss */ 
public static boolean isTodayBdy(String dob) { 
    Date today = new Date(); 
    try { 
     if(dob.length() > 1){ 
      Date dobDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(dob); 
      if ((today.getMonth() == dobDate.getMonth()) && (today.getDate() == dobDate.getDate())) { 
       return true; 
      } 
     } 
    } catch (ParseException e) { 
     return false; 
    } 
    return false; 
} 
1

java.time.MonthDay

運用現代日期時間類的ThreeTenABP項目,內置到Java 8以及後來的java-timethe back-port一個Android適應。避免麻煩的舊的遺留日期時間課程。

這些java.time類包括MonthDay類來表示一個月和一個月沒有一年的日期。

MonthDay md = MonthDay.of(8 , 15); 

這個類已經實現了Comparable接口及其compareTo方法。還實施方法equals,isBeforeisAfter。所以,工作完成了。

確定current MonthDay需要一個時區。對於任何特定時刻,日期變化爲time zone

ZoneId z = ZoneId.of("America/Montreal"); 
MonthDay today = MonthDay.now(z); 

關於java.time

java.time框架是建立在Java 8和更高版本。這些類取代了日期時間類legacy,如java.util.Date,Calendar,& SimpleDateFormat

Joda-Time項目現在位於maintenance mode,建議遷移到java.time類。請參閱Oracle Tutorial。並搜索堆棧溢出了很多例子和解釋。規格是JSR 310

從何處獲取java.time類?

+0

謝謝。之前不知道。 – tanzilamohita

相關問題