0

我在下面有这个 CalendarView

在此处输入图像描述

如果我单击今天的日期,它将弹出一个对话框。但是如果您单击 CurrentDate 之前的日期,则不会弹出此日历,它只会说您无法在当前日期/时间之前添加事件.. 和如果我点击今天日期之后的任何一天,运行良好,但是当我点击今天的日期时,我会说一条消息,就像我点击之前的日期时一样......

这是我比较日期的代码

long currentTime;
Date curr = new Date();
currentTime = curr.getTime();
if(cw.getDate() >= currentTime || formatDate(cw.getDate()) == formatDate(currentTime))
{
            Dialog d = new Dialog(ScheduleActivity.this);
            //some code for setting up the dialog
            d.show();

}
else
{
        Toast toast = Toast.makeText(ScheduleActivity.this, Long.toString(cw.getDate())+" || "+Long.toString(currentTime),10000);
        toast.show();

        Log.d("timecheck", formatDate(cw.getDate())+" || "+ formatDate(currentTime));
}

我只是使用格式为 MM/dd/yyyy 的 formatDate 来比较两个日期,因为单独比较时间戳仍然不起作用(使用 ">=" )

顺便说一句,吐司发生了变化,所以我可以看到正在比较的值......以毫秒为单位,它们确实是不同的,但是当我将其格式化为 MM/dd/yy 时,它会认为它是相同的......但它不会通过 if 部分,它将进入 else 部分.. 我在 logcat 中记录了 formattedDate,logcat 下面..

Logcat 日志 在此处输入图像描述

4

2 回答 2

1

您将需要使用equals而不是==比较从 formatDate 返回的字符串:

if(cw.getDate() >= currentTime || formatDate(cw.getDate()).equals(formatDate(currentTime)))
于 2012-07-31T13:51:17.943 回答
0

当您将所有输入与当前日期进行比较时,您的弹出窗口没有出现尝试通过添加以前的日期输入其他值进行比较,然后再次尝试它会起作用:)

于 2012-07-31T13:51:40.500 回答