2015-11-23 52 views
0

我想比較一下從本地機器獲得的日期和從掃描儀獲得的整數。日期格式爲:MMDDYYYY,例如今天的日期爲11232015。我的整數然後是11192015。我想我的日期轉換爲整數,然後比較真正的日期與一個我從我的掃描儀有:將格式化日期與Java中的整數進行比較

Calendar c; 
DateFormat df = new SimpleDateFormat("MMddyyyy"); 
c.getInstance(); 
Date currentDate = c.getTime(); 
int dateFromScanner = 11192015; 

Date formattedDate = df.format(currentDate); 

if (dateFromScanner !> formattedDate { 
// Do some stuff 
} else { 
System.out.println("This date has not yet passed."); 
} 

但我不能比較日期爲整數。

+1

您自然有一個* date * ...,而不是將日期轉換爲整數,爲什麼不將該整數轉換爲日期?或者更好的是,閱讀它作爲一個字符串,然後使用'SimpleDateFormat'來解析它... –

+0

SimpleDateFormat將其格式化爲一個字符串,我無法比較'if(dateFromScanner!> formattedDate {'兩個字符串與'!>'。但是,如何將整數轉換爲日期呢? –

+1

那麼''>'不會在Java中工作 - 它根本就不是一個有效的運算符,但'SimpleDateFormat' *解析和格式化,這就是我建議。 –

回答

1

你可以做這樣的事情:

DateFormat df = new SimpleDateFormat("MMddyyyy"); 
    Date currentDate = new Date(); 
    int dateFromScanner = 11192015; 

    try { 
     Date formattedDateFromScanner = df 
       .parse(String.valueOf(dateFromScanner)); 

     if (formattedDateFromScanner.before(currentDate)) { 
      // Do some stuff 
     } else { 
      System.out.println("This date has not yet passed."); 
     } 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
1

嘗試這樣一個解決方案,它可以給你一些想法應怎麼做。

public static void main(String[] args) { 

    Calendar c = null; 

    Scanner sc = new Scanner(System.in); 
    System.out.println("Enter date value like yyyyMMdd."); 
    int dat = sc.nextInt(); 

    DateFormat df = new SimpleDateFormat("yyyyMMdd"); 

    Date currentDate = c.getInstance().getTime(); 
    String formattedDate = df.format(currentDate); 
    System.out.println(formattedDate); 

    if (dat < Integer.parseInt(formattedDate)) { 
     System.out.println("This date had being passed."); 
    } else { 
     System.out.println("This date has not yet passed."); 
    } 
}