package de.fau.cs.mad.fablab.android.util;
import java.util.Calendar;
import java.util.Locale;
/**
* helper class for
* calendar comparing and
* string building
*/
public class CalendarHelper
{
public static boolean isSameDay(Calendar calendarDate1, Calendar calendarDate2)
{
if (calendarDate1.get(Calendar.YEAR) == calendarDate2.get(Calendar.YEAR) &&
calendarDate1.get(Calendar.MONTH) == calendarDate2.get(Calendar.MONTH) &&
calendarDate1.get(Calendar.DAY_OF_MONTH) == calendarDate2.get(Calendar.DAY_OF_MONTH))
return true;
else
return false;
}
public static boolean isSameDay(int[] date1, int[] date2)
{
if (date1[0] == date2[0] &&
date1[1] == date2[1] &&
date1[2] == date2[2])
return true;
else
return false;
}
public static boolean isSameTime(Calendar startTime, Calendar endTime)
{
if (startTime.get(Calendar.HOUR) == endTime.get(Calendar.HOUR) &&
startTime.get(Calendar.MINUTE) == endTime.get(Calendar.MINUTE))
return true;
else
return false;
}
public static boolean isCurrentDay(int[] date)
{
Calendar currentCal = Calendar.getInstance();
if (date[0] == currentCal.get(Calendar.DAY_OF_MONTH) &&
date[1] == currentCal.get(Calendar.MONTH) &&
date[2] == currentCal.get(Calendar.YEAR))
return true;
else
return false;
}
public static boolean isCurrentDay(Calendar calendarDate)
{
Calendar currentDate = Calendar.getInstance();
return isSameDay(currentDate, calendarDate);
}
public static boolean isMoreDays(Calendar startTime, Calendar endTime)
{
return !isSameDay(startTime, endTime);
}
public static boolean isMoreDays(int[] date1, int[] date2)
{
if (date1[0] != date2[0] ||
date1[1] != date2[1] ||
date1[2] != date2[2])
return true;
else
return false;
}
public static String buildDateString(Calendar calendarDate)
{
//month+1, because Calendar is zero-based (eg january = 0 and not 1)
if (isCurrentDay(calendarDate))
return "Heute";
else
{
String result = Integer.toString(calendarDate.get(Calendar.DAY_OF_MONTH)) + "." + (Integer.toString(calendarDate.get(Calendar.MONTH) + 1) + "." + Integer.toString(calendarDate.get(Calendar.YEAR)));
result = calendarDate.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.getDefault()) + " " + result;
return result;
}
}
public static String buildDateString(int[] calendar)
{
Calendar myCalendar = Calendar.getInstance();
myCalendar.set(calendar[2], calendar[1], calendar[0]);
//month+1, because Calendar is zero-based (eg january = 0 and not 1)
if (isCurrentDay(calendar))
return "Heute";
else
{
String result = Integer.toString(myCalendar.get(Calendar.DAY_OF_MONTH)) + "." + (Integer.toString(myCalendar.get(Calendar.MONTH) + 1) + "." + Integer.toString(myCalendar.get(Calendar.YEAR)));
result = myCalendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.getDefault()) + " " + result;
return result;
}
}
public static String buildTimeString(int[] time)
{
// Minute + 100 to display HH::mm instead of H:m
return Integer.toString(time[0]) + ":" + Integer.toString((time[1]) + 100).substring(1);
}
public static String buildTimeString(Calendar calendarTime)
{
// Minute + 100 to display HH::mm instead of H:m
return Integer.toString(calendarTime.get(Calendar.HOUR_OF_DAY)) + ":" + Integer.toString(calendarTime.get(Calendar.MINUTE) + 100).substring(1);
}
}