如何检查事件是否少于30分钟?

时间:2016-03-14 10:43:58

标签: java android datetime

我正在制作一个活动。我想检查一下这个事件是否少于30分钟。如果不到30分钟,我不想让用户添加该事件。

我以日期格式存储时间。

日期格式为

 df = new SimpleDateFormat("E MMM dd hh:mm:ss zzzz yyyy");

我有两个日期datefromdateto。我尝试获得datefromdateto的分钟数,并减去从分钟到分钟的分钟数,如果总分钟数小于30,则用户无法添加该事件。

但它运作不佳。每次都无法添加活动。

我的尝试是:

   long frmMins = datefrom.getMinutes();

            long toMins = dateto.getMinutes();

            long calMinutes = toMins - frmMins;


 else if (calMinutes < 30) {
                        showAlert("Event can not be less than 30 Minutes.");
                    }

事件记录:

Date: Sat Mar 19 16:00:00 GMT+05:30 2016,Todate: Sat Mar 19 23:59:00 GMT+05:30 2016

要以毫秒换算,然后在几分钟内我的尝试就是这样:

       long frmMillis = datefrom.getTime();

            long frmMins = TimeUnit.MILLISECONDS.toMinutes(frmMillis);

            long toMillis = dateto.getTime();
            long toMins = TimeUnit.MILLISECONDS.toMinutes(toMillis);

            long calMinutes = toMins - frmMins;

但它大部分时间都给出负值。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

你也可以试试这个 -

long diff = dateto.getTime() - datefrom.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
if (diffMinutes < 30) {
    showAlert("Event can not be less than 30 Minutes.");
   }

答案 1 :(得分:0)

由于我们在android中执行此操作,我建议您使用 alarm manager 来实现此目标

alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
        AlarmManager.INTERVAL_HALF_HOUR,
        AlarmManager.INTERVAL_HALF_HOUR, alarmIntent);

每半小时发出一次警报。现在你需要一个reciver来处理事件休息是你的app逻辑 这是一个完整的工作示例 http://www.vogella.com/tutorials/AndroidServices/article.html