在我的应用程序中,我想比较两个日期,我的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);
答案 0 :(得分: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你可以做出选择并从中获取布尔值
答案 1 :(得分: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;
}
愿力量与你同在。
答案 2 :(得分: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
答案 3 :(得分: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);
}
答案 4 :(得分:-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