Android Open Source - CalendarAdapter Calendar Utils






From Project

Back to project page CalendarAdapter.

License

The source code is released under:

MIT License

If you think the Android project CalendarAdapter listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package io.avocado.android.calendaradapter.library;
/*from   w w w  . j a v  a2 s  .  co  m*/
import java.util.Calendar;
import java.util.Date;

/**
 * Created by matthewlogan on 5/21/14.
 */
public class CalendarUtils {

    public static int getNumberOfMonthsApartInclusive(Date firstDate, Date lastDate) {
        Calendar firstCal = Calendar.getInstance();
        firstCal.setTime(firstDate);

        Calendar lastCal = Calendar.getInstance();
        lastCal.setTime(lastDate);

        return 12 * (lastCal.get(Calendar.YEAR) - firstCal.get(Calendar.YEAR))
                + lastCal.get(Calendar.MONTH) - firstCal.get(Calendar.MONTH) + 1;
    }

    public static int getNumberOfDaysToShowInPreviousMonthBeforeThisMonth(Date someDayInCurrentMonth) {
        Calendar monthCal = Calendar.getInstance();
        monthCal.setTime(someDayInCurrentMonth);
        monthCal.set(Calendar.DAY_OF_MONTH, 1);
        switch (monthCal.get(Calendar.DAY_OF_WEEK)) {
            case Calendar.SUNDAY:
                return 0;
            case Calendar.MONDAY:
                return 1;
            case Calendar.TUESDAY:
                return 2;
            case Calendar.WEDNESDAY:
                return 3;
            case Calendar.THURSDAY:
                return 4;
            case Calendar.FRIDAY:
                return 5;
            case Calendar.SATURDAY:
                return 6;
            default:
                return 0;
        }
    }

    public static int getNumberOfDaysInMonth(Date someDayInMonth) {
        Calendar monthCal = Calendar.getInstance();
        monthCal.setTime(someDayInMonth);
        return monthCal.getActualMaximum(Calendar.DAY_OF_MONTH);
    }

    public static int getNumberOfDaysInPreviousMonth(Date someDayInCurrentMonth) {
        Calendar lastMonthCal = Calendar.getInstance();
        lastMonthCal.setTime(someDayInCurrentMonth);
        lastMonthCal.add(Calendar.MONTH, -1);
        return lastMonthCal.getActualMaximum(Calendar.DAY_OF_MONTH);
    }

    public static boolean isSameDay(Date date1, Date date2) {
        Calendar cal1 = Calendar.getInstance();
        cal1.setTime(date1);

        Calendar cal2 = Calendar.getInstance();
        cal2.setTime(date2);

        return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
                cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);
    }

    public static boolean isSameMonth(Date date1, Date date2) {
        Calendar cal1 = Calendar.getInstance();
        cal1.setTime(date1);

        Calendar cal2 = Calendar.getInstance();
        cal2.setTime(date2);

        return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
                cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH);
    }

    public static int getNumberOfDaysInApartExclusive(Date startDate, Date endDate) {
        if (startDate == null || endDate == null) {
            return 0;
        }

        Calendar endCal = Calendar.getInstance();
        endCal.setTime(endDate);

        Calendar startCal = Calendar.getInstance();
        startCal.setTime(startDate);

        int endYear = endCal.get(Calendar.YEAR);
        int startYear = startCal.get(Calendar.YEAR);

        int endDayOfYear = endCal.get(Calendar.DAY_OF_YEAR);
        int startDayOfYear = startCal.get(Calendar.DAY_OF_YEAR);

        if (endYear == startYear) {
            return endDayOfYear - startDayOfYear;
        } else {
            int daysInFuture = 0;

            // days left in this year
            daysInFuture += startCal.getActualMaximum(Calendar.DAY_OF_YEAR) - startDayOfYear;

            // days from start of end year
            daysInFuture += endDayOfYear;

            // all the days in the in-between years
            for (int year = startYear + 1; year < endYear; year++) {
                Calendar yearCal = Calendar.getInstance();
                yearCal.set(year, Calendar.JANUARY, 1);
                daysInFuture += yearCal.getActualMaximum(Calendar.DAY_OF_YEAR);
            }

            return daysInFuture;
        }
    }
}




Java Source Code List

io.avocado.android.calendaradapter.app.MainActivity.java
io.avocado.android.calendaradapter.app.TestEvent.java
io.avocado.android.calendaradapter.library.CalendarAdapter.java
io.avocado.android.calendaradapter.library.CalendarCell.java
io.avocado.android.calendaradapter.library.CalendarEvent.java
io.avocado.android.calendaradapter.library.CalendarGrid.java
io.avocado.android.calendaradapter.library.CalendarUtils.java