-1

私のアプリケーションでは、2つの日付を比較したいのですが、next_dueの日付は現在の日付以上である必要があります。私はそれをコーディングしますが、それは機能しません:(必要な結果を達成するためのコードの修正は何ですか?親切に助けてください

私のJavaCode

public void CompareDates(){
      Calendar date = Calendar.getInstance();
      Calendar next_due_on = Calendar.getInstance();

    if(date.before(next_due_on))
    System.out.print("Current date(" + new SimpleDateFormat("dd/MM/yyyy").
    format(next_due_on.getTime()) + ") is greater than the given date " + new
    SimpleDateFormat("dd/MM/yyyy").format(date.getTime()));
          else
      System.out.print("Both date are equal.");
      }

 date_txtbx = (EditText) findViewById(R.id.date_txtbx);
        date_txtbx.setText(" " 
        + String.valueOf(java.text.DateFormat.getDateTimeInstance()
                                    .format(Calendar.getInstance().getTime())));

        next_due_on_txtbx = (EditText) findViewById(R.id.next_due_on_txtbx);
        next_due_on_txtbx.setText(non_ticket_task.next_due_on);
4

5 に答える 5

3

ほとんどの場合、日付操作を行うときはjoda-timeを使用する必要があります。メインページは http://joda-time.sourceforge.net/quickstart.htmlにあります。

ここに画像の説明を入力

.isBefore()メソッドと日付を簡単に比較できますisAfter()

public boolean hasWordEnded(){

    String today = "24/12/2012";
    String endOfMayanCalendar = "21/12/2012";
    DateTimeFormatter fmt = DateTimeFormat.forPattern("dd/MM/yyyy");

    DateTime todayDate = fmt.parseDateTime(today);
    DateTime endOfWorldDate = fmt.parseDateTime(endOfMayanCalendar);

    if (todayDate.isAfter(endOfWorldDate)){
        return true;
    }
    return false;
}

力があなたと共にありますように。

于 2012-12-24T12:18:24.543 に答える
3
    public boolean dateCompare(Date date1 , Date date2){

    Calendar date = Calendar.getInstance();
    date.setTime(date1);
    Calendar next_due_on = Calendar.getInstance();
    next_due_on.setTime(date2);
    int temp = date.compareTo(next_due_on);
    if (temp == 0 || temp == -1)
        return false;
    return true;
}

temp は 1,0,-1 になります。選択してブール値を取得できます

于 2012-12-24T10:47:31.150 に答える
1
Calendar date = Calendar.getInstance();
Calendar next_due_on = Calendar.getInstance();

早く来て、試してみてください

Calendar date = Calendar.getInstance();
Calendar next_due_on = Calendar.getInstance();
System.out.println(date.getTimeInMillis());
System.out.println(next_due_on.getTimeInMillis());

ミリ単位の時間は同じであることがわかります

1356345814527
1356345814527
于 2012-12-24T10:44:42.113 に答える
1

以下のコードを試してください。

public static void main(String[] args)
{

    Calendar dueDate = Calendar.getInstance();
    System.out.println(isDueDateValid(dueDate));

    dueDate.add(Calendar.MONTH, -1);    
    System.out.println(isDueDateValid(dueDate));

    dueDate.add(Calendar.MONTH, 2); 
    System.out.println(isDueDateValid(dueDate));
}



public static boolean isDueDateValid(Calendar dueDate)
{
    Calendar currDate = Calendar.getInstance();

    return dueDate.after(currDate); 

}
于 2012-12-24T10:49:38.723 に答える
-1
Date date1;
Date date2;
[...]
Calendar c1 = Calendar.getInstance();
c1.setTime(date1);
Calendar c2 = Calendar.getInstance();
c2.setTime(date2);
int result = c1.compareTo(c2); // 0 if equal, < 0 if c1 before c2, > 0 if c1 after c2
于 2012-12-24T10:46:21.920 に答える