Java Code Examples for org.joda.time.MutableDateTime#isBeforeNow()

The following examples show how to use org.joda.time.MutableDateTime#isBeforeNow() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AlarmScheduler.java    From BaldPhone with Apache License 2.0 4 votes vote down vote up
static long nextTimeAlarmWillWorkInMs(@NonNull Alarm alarm) {
    final MutableDateTime mDateTime = MutableDateTime.now();
    {   //creating a date of today with the hours and minutes of the alarm
        mDateTime.setMillisOfSecond(0);
        mDateTime.setSecondOfMinute(0);
        mDateTime.setHourOfDay(alarm.getHour());
        mDateTime.setMinuteOfHour(alarm.getMinute());
    }

    final int baldDay = getBaldDay();

    {   //today or one time
        if ((alarm.getDays() & baldDay) == baldDay) {//today may have an alarm
            if ((alarm.getDays() == baldDay)) {
                if (mDateTime.isBeforeNow())
                    mDateTime.addWeeks(1);  //next week if today's time already passed
                return mDateTime.getMillis();
            } else {
                if (mDateTime.isAfterNow())
                    return mDateTime.getMillis();
            }
        } else if (alarm.getDays() == -1) {
            if (mDateTime.isBeforeNow())
                mDateTime.addDays(1);
            return mDateTime.getMillis();
        }
    }
    int selectedBaldDay = baldDay;

    {   //find next day
        for (int i = baldDay << 1; i != baldDay; i <<= 1) {
            if (i > D.Days.SATURDAY)
                i = D.Days.SUNDAY;

            if ((alarm.getDays() & i) == i) {
                selectedBaldDay = i;
                break;
            }

        }
    }

    int day = baldDayToJodaDay(selectedBaldDay);
    mDateTime.setDayOfWeek(day);
    if (mDateTime.isBeforeNow()) {
        mDateTime.addWeeks(1);
    }
    return mDateTime.getMillis();
}
 
Example 2
Source File: ReminderScheduler.java    From BaldPhone with Apache License 2.0 4 votes vote down vote up
private static long nextTimeReminderWillWorkInMs(@NonNull Reminder reminder, Context context) {
    final MutableDateTime mDateTime = MutableDateTime.now();

    {   //creating a date of today with the hours and minutes of the alarm
        mDateTime.setMillisOfSecond(0);
        mDateTime.setSecondOfMinute(0);

        mDateTime.setHourOfDay(BPrefs.getHour(reminder.getStartingTime(), context));
        mDateTime.setMinuteOfHour(BPrefs.getMinute(reminder.getStartingTime(), context));
    }

    final int baldDay = getBaldDay();
    final int days = reminder.getDays();
    {   //today or one time
        if ((days & baldDay) == baldDay) {//today may have an alarm
            if ((days == baldDay)) {
                if (mDateTime.isBeforeNow())
                    mDateTime.addWeeks(1);  //next week if today's time already passed
                return mDateTime.getMillis();
            } else {
                if (mDateTime.isAfterNow())
                    return mDateTime.getMillis();
            }
        } else if (days == -1) {
            if (mDateTime.isBeforeNow())
                mDateTime.addDays(1);
            return mDateTime.getMillis();
        }
    }

    int selectedBaldDay = baldDay;

    {   //find next day
        for (int i = baldDay << 1; i != baldDay; i <<= 1) {
            if (i > D.Days.SATURDAY)
                i = D.Days.SUNDAY;

            if ((days & i) == i) {
                selectedBaldDay = i;
                break;
            }

        }
    }

    int day = baldDayToJodaDay(selectedBaldDay);
    mDateTime.setDayOfWeek(day);
    if (mDateTime.isBeforeNow()) {
        mDateTime.addWeeks(1);
    }
    return mDateTime.getMillis();
}