Example usage for java.util Calendar FRIDAY

List of usage examples for java.util Calendar FRIDAY

Introduction

In this page you can find the example usage for java.util Calendar FRIDAY.

Prototype

int FRIDAY

To view the source code for java.util Calendar FRIDAY.

Click Source Link

Document

Value of the #DAY_OF_WEEK field indicating Friday.

Usage

From source file:org.sakaiproject.signup.tool.jsf.organizer.action.EditMeeting.java

private void retrieveRecurrenceData(List<SignupMeeting> upTodateOrginMeetings) {
    /*to see if the recurring events have a 'Start_Now' type already*/
    this.isStartNowTypeForRecurEvents = Utilities.testSignupBeginStartNowType(upTodateOrginMeetings);

    String repeatType = upTodateOrginMeetings.get(0).getRepeatType();
    if (repeatType != null && !ONCE_ONLY.equals(repeatType)) {
        int lSize = upTodateOrginMeetings.size();
        setLastRecurMeetingModifyDate(upTodateOrginMeetings.get(lSize - 1).getStartTime());
        setRecurringType(repeatType);//from www. j  a  v  a  2  s . c o m
        return;
    }

    /*The following code is to make it old version backward compatible*/
    setFirstRecurMeetingModifyDate(null);
    setLastRecurMeetingModifyDate(null);
    if (upTodateOrginMeetings == null || upTodateOrginMeetings.isEmpty())
        return;

    setFirstRecurMeetingModifyDate(upTodateOrginMeetings.get(0).getStartTime());
    /* in case: it's the last one */
    setLastRecurMeetingModifyDate(upTodateOrginMeetings.get(0).getStartTime());

    int listSize = upTodateOrginMeetings.size();
    if (listSize > 1) {
        setLastRecurMeetingModifyDate(upTodateOrginMeetings.get(listSize - 1).getStartTime());
        Calendar calFirst = Calendar.getInstance();
        Calendar calSecond = Calendar.getInstance();
        /*
         * we can only get approximate estimation by assuming it's a
         * succession
         */
        calFirst.setTime(upTodateOrginMeetings.get(listSize - 2).getStartTime());
        calFirst.set(Calendar.SECOND, 0);
        calFirst.set(Calendar.MILLISECOND, 0);
        calSecond.setTime(upTodateOrginMeetings.get(listSize - 1).getStartTime());
        calSecond.set(Calendar.SECOND, 0);
        calSecond.set(Calendar.MILLISECOND, 0);
        int tmp = calSecond.get(Calendar.DATE);
        int daysDiff = (int) (calSecond.getTimeInMillis() - calFirst.getTimeInMillis()) / DAY_IN_MILLISEC;
        if (daysDiff == perDay)
            setRecurringType(DAILY);
        else if (daysDiff == perWeek)
            setRecurringType(WEEKLY);
        else if (daysDiff == perBiweek)
            setRecurringType(BIWEEKLY);
        else if (daysDiff == 3 && calFirst.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY)
            setRecurringType(WEEKDAYS);
    }
}

From source file:com.alkacon.opencms.calendar.CmsSerialDateWidget.java

/**
 * Returns the macro resolver with initialized macros to generate the serial date input form.<p>
 * //from  www  .ja  v  a2  s .  co  m
 * @param cms an initialized instance of a CmsObject
 * @param widgetDialog the dialog where the widget is used on
 * @param param the widget parameter to generate the widget for
 * @return the macro resolver with initialized macros
 */
protected CmsMacroResolver getMacroResolverForForm(CmsObject cms, I_CmsWidgetDialog widgetDialog,
        I_CmsWidgetParameter param) {

    CmsMacroResolver resolver = CmsMacroResolver.newInstance();
    // set cms object and localized messages in resolver
    resolver.setCmsObject(cms);
    CmsMessages messages = new CmsMessages(CmsSerialDateWidget.class.getPackage().getName() + ".messages",
            widgetDialog.getLocale());
    resolver.setMessages(messages);
    // delete empty macros which were not replaced
    resolver.setKeepEmptyMacros(false);

    // create the serial entry date object
    String paramValue = param.getStringValue(cms);
    Map params = CmsStringUtil.splitAsMap(paramValue, String.valueOf(CmsProperty.VALUE_LIST_DELIMITER),
            String.valueOf(CmsProperty.VALUE_MAP_DELIMITER));
    // create the entry date from the field values
    CmsCalendarEntryDateSerial entryDate = CmsCalendarSerialDateFactory.getSerialDate(params,
            widgetDialog.getLocale());
    if (entryDate == null) {
        // no entry date created yet, build an empty default date
        Calendar start = new GregorianCalendar(widgetDialog.getLocale());
        Calendar end = (Calendar) start.clone();
        entryDate = new CmsCalendarEntryDateSerial(start, end);
        entryDate.setSerialEndType(I_CmsCalendarSerialDateOptions.END_TYPE_NEVER);
    }

    // vars for daily options
    String dayDailyInterval = "1";
    boolean dayEveryWorkingDay = false;
    // vars for weekly options
    String weekWeeklyInterval = "1";
    // vars for monthly options
    int monthSelectedIndexWeekDayOfMonth = 0;
    int monthSelectedWeekDay = -1;
    String monthDayOfMonth = "1";
    String monthMonthlyInterval = "1";
    String monthMonthlyIntervalWeekDay = "1";
    boolean monthUseWeekday = false;
    // vars for yearly options
    String yearDayOfMonth = "1";
    boolean yearUseWeekday = false;
    int yearSelectedIndexMonth = 0;
    int yearSelectedIndexWeekDayOfMonth = 0;
    int yearSelectedWeekDayDay = -1;
    int yearSelectedIndexWeekDayMonth = 0;

    if (entryDate.getSerialOptions() != null) {
        // fill the variables depending on the selected serial date type
        String serialTypeMacroPrefix = MACRO_PREFIX_PARAMVALUE + PARAM_SERIALTYPE + ".";
        // set serial type radio selection
        resolver.addMacro(serialTypeMacroPrefix + entryDate.getSerialOptions().getSerialType(), ATTR_CHECKED);
        switch (entryDate.getSerialOptions().getSerialType()) {
        // set values for the selected serial type
        case I_CmsCalendarSerialDateOptions.TYPE_DAILY:
            CmsCalendarSerialDateDailyOptions dailyOptions = (CmsCalendarSerialDateDailyOptions) entryDate
                    .getSerialOptions();
            dayEveryWorkingDay = dailyOptions.isEveryWorkingDay();
            dayDailyInterval = String.valueOf(dailyOptions.getDailyInterval());
            break;
        case I_CmsCalendarSerialDateOptions.TYPE_WEEKLY:
            CmsCalendarSerialDateWeeklyOptions weeklyOptions = (CmsCalendarSerialDateWeeklyOptions) entryDate
                    .getSerialOptions();
            weekWeeklyInterval = String.valueOf(weeklyOptions.getWeeklyInterval());
            // check the chosen week day checkboxes
            serialTypeMacroPrefix = MACRO_PREFIX_PARAMVALUE + PARAM_WEEK_WEEKDAY + ".";
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.MONDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.MONDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.TUESDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.TUESDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.WEDNESDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.WEDNESDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.THURSDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.THURSDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.FRIDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.FRIDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.SATURDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.SATURDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.SUNDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.SUNDAY, ATTR_CHECKED);
            }
            break;
        case I_CmsCalendarSerialDateOptions.TYPE_MONTHLY:
            CmsCalendarSerialDateMonthlyOptions monthlyOptions = (CmsCalendarSerialDateMonthlyOptions) entryDate
                    .getSerialOptions();
            monthUseWeekday = monthlyOptions.isUseWeekDay();
            if (!monthlyOptions.isUseWeekDay()) {
                monthDayOfMonth = String.valueOf(monthlyOptions.getDayOfMonth());
                monthMonthlyInterval = String.valueOf(monthlyOptions.getMonthlyInterval());
            } else {
                // set selected index of select boxes
                monthSelectedIndexWeekDayOfMonth = monthlyOptions.getDayOfMonth() - 1;
                monthSelectedWeekDay = monthlyOptions.getWeekDay();
                monthMonthlyIntervalWeekDay = String.valueOf(monthlyOptions.getMonthlyInterval());
            }
            break;
        case I_CmsCalendarSerialDateOptions.TYPE_YEARLY:
            CmsCalendarSerialDateYearlyOptions yearlyOptions = (CmsCalendarSerialDateYearlyOptions) entryDate
                    .getSerialOptions();
            yearUseWeekday = yearlyOptions.isUseWeekDay();
            if (!yearlyOptions.isUseWeekDay()) {
                yearDayOfMonth = String.valueOf(yearlyOptions.getDayOfMonth());
                yearSelectedIndexMonth = yearlyOptions.getMonth();
            } else {
                yearSelectedIndexWeekDayOfMonth = yearlyOptions.getDayOfMonth() - 1;
                yearSelectedWeekDayDay = yearlyOptions.getWeekDay();
                yearSelectedIndexWeekDayMonth = yearlyOptions.getMonth();
            }
            break;
        default:
            // nothing do do here, should never happen
        }
    } else {
        // no serial entry created yet, add some defaults
        resolver.addMacro(
                MACRO_PREFIX_PARAMVALUE + PARAM_SERIALTYPE + "." + I_CmsCalendarSerialDateOptions.TYPE_DAILY,
                ATTR_CHECKED);
        resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_WEEK_WEEKDAY + "." + Calendar.MONDAY, ATTR_CHECKED);

    }
    // set time settings
    String startTime = getCalendarLocalizedTime(widgetDialog.getLocale(), widgetDialog.getMessages(),
            entryDate.getStartDate().getTimeInMillis(), false, true);
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_STARTTIME, startTime);

    String endTime = "";
    if (!entryDate.getStartDate().equals(entryDate.getEndDate())) {
        // end time is different from start time, get localized value
        endTime = getCalendarLocalizedTime(widgetDialog.getLocale(), widgetDialog.getMessages(),
                entryDate.getEndDate().getTimeInMillis(), false, true);
    }
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_ENDTIME, endTime);

    resolver.addMacro("select.durationdays",
            buildSelectDurationDays(PARAM_DURATIONDAYS, messages, entryDate.getDuration()));

    // set found values to serial option tabs
    // daily options
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_DAY_DAILYINTERVAL, dayDailyInterval);
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_DAY_EVERYWORKINGDAY + "." + dayEveryWorkingDay,
            ATTR_CHECKED);

    // weekly options
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_WEEK_WEEKLYINTERVAL, weekWeeklyInterval);

    // monthly options
    // mark the correct radio
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_MONTH_SERIALMONTHDAY + "." + monthUseWeekday,
            ATTR_CHECKED);
    // set the macros for the day of month options
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_MONTH_DAYOFMONTH, monthDayOfMonth);
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_MONTH_MONTHLYINTERVAL, monthMonthlyInterval);
    // set the macros for the week day of month options
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_MONTH_MONTHLYINTERVALWEEKDAY,
            monthMonthlyIntervalWeekDay);
    // build the select boxes
    resolver.addMacro("select.monthnumberofweekday",
            buildSelectNumberOfWeekDayOfMonth(
                    PARAM_MONTH_NUMBEROFWEEKDAYOFMONTH, "onfocus=\"document.getElementById('"
                            + PARAM_MONTH_SERIALMONTHDAY + ".true').checked = true;\"",
                    messages, monthSelectedIndexWeekDayOfMonth));
    resolver.addMacro("select.monthweekday",
            buildSelectWeekDay(PARAM_MONTH_WEEKDAY, "onfocus=\"document.getElementById('"
                    + PARAM_MONTH_SERIALMONTHDAY + ".true').checked = true;\"", messages,
                    monthSelectedWeekDay));

    // yearly options
    // mark the correct radio
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_YEAR_SERIALYEARDAY + "." + yearUseWeekday, ATTR_CHECKED);
    // set the macros for the day of month options
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_YEAR_DAYOFMONTH, yearDayOfMonth);
    resolver.addMacro("select.yearmonth", buildSelectMonth(PARAM_YEAR_MONTH,
            "onfocus=\"document.getElementById('" + PARAM_YEAR_SERIALYEARDAY + ".false').checked = true;\"",
            messages, yearSelectedIndexMonth));
    // set the macros for the week day of month options
    resolver.addMacro("select.yearnumberofweekday",
            buildSelectNumberOfWeekDayOfMonth(PARAM_YEAR_WEEKDAYOFMONTH, "onfocus=\"document.getElementById('"
                    + PARAM_YEAR_SERIALYEARDAY + ".true').checked = true;\"", messages,
                    yearSelectedIndexWeekDayOfMonth));
    resolver.addMacro("select.yearweekday",
            buildSelectWeekDay(PARAM_YEAR_WEEKDAY, "onfocus=\"document.getElementById('"
                    + PARAM_YEAR_SERIALYEARDAY + ".true').checked = true;\"", messages,
                    yearSelectedWeekDayDay));
    resolver.addMacro("select.yearmonthweekday",
            buildSelectMonth(PARAM_YEAR_WEEKDAYMONTH, "onfocus=\"document.getElementById('"
                    + PARAM_YEAR_SERIALYEARDAY + ".true').checked = true;\"", messages,
                    yearSelectedIndexWeekDayMonth));

    // set serial duration values

    // set start date
    resolver.addMacro("calendar.startdate",
            buildDateInput("startdate", widgetDialog, entryDate.getStartDate()));
    Calendar serialEndDate = entryDate.getSerialEndDate();
    if (serialEndDate == null) {
        serialEndDate = entryDate.getStartDate();
    }
    resolver.addMacro("calendar.serialenddate", buildDateInput("serialenddate", widgetDialog, serialEndDate));

    // set occurences
    int occurences = 10;
    if (entryDate.getSerialEndType() == I_CmsCalendarSerialDateOptions.END_TYPE_TIMES) {
        occurences = entryDate.getOccurences();
    }
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_OCCURENCES, String.valueOf(occurences));

    // set the end type radio buttons
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_ENDTYPE + "." + entryDate.getSerialEndType(),
            ATTR_CHECKED);

    return resolver;
}

From source file:joshuatee.wx.ModelInterfaceActivity.java

private String ConvertTimeRuntoTimeString(String run_str, String time_str) {

    int run_int = Integer.parseInt(run_str);
    int time_int = Integer.parseInt(time_str);
    int real_time_gmt = run_int + time_int;
    TimeZone tz = TimeZone.getDefault();
    Date now = new Date(System.currentTimeMillis());
    int offsetFromUtc = tz.getOffset(now.getTime()) / 1000;
    int real_time = real_time_gmt + offsetFromUtc / 60 / 60;
    int hour_of_day = real_time % 24;
    String am_pm = "";
    if (hour_of_day > 11) {
        am_pm = "pm";
        if (hour_of_day > 12) {
            hour_of_day = hour_of_day - 12;
        }/*from   w ww. ja va 2  s  .  c  o  m*/
    } else {
        am_pm = "am";
    }

    int day = (int) real_time / 24;

    if (hour_of_day < 0) {
        hour_of_day = 12 + hour_of_day;
        am_pm = "pm";
        day--;
    }

    Calendar calendar = Calendar.getInstance();
    int day_of_week = calendar.get(Calendar.DAY_OF_WEEK);
    int hour_of_day_local = calendar.get(Calendar.HOUR_OF_DAY);

    if (run_int >= 0 && run_int < -offsetFromUtc / 60 / 60
            && (hour_of_day_local - offsetFromUtc / 60 / 60) >= 24) {
        day++;
    }

    String future_day = "";

    switch ((day_of_week + day) % 7) {
    case Calendar.SUNDAY:
        future_day = "Sun";
        break;
    case Calendar.MONDAY:
        future_day = "Mon";
        break;
    case Calendar.TUESDAY:
        future_day = "Tue";
        break;
    case Calendar.WEDNESDAY:
        future_day = "Wed";
        break;
    case Calendar.THURSDAY:
        future_day = "Thu";
        break;
    case Calendar.FRIDAY:
        future_day = "Fri";
        break;
    case 0:

        future_day = "Sat";
        break;
    }

    //return  future_day + "  "+hour_of_day.toString()+ am_pm;
    return future_day + "  " + Integer.toString(hour_of_day) + am_pm;

}

From source file:dbtimetable.DBTimetableMIDletClass.java

private boolean is_weekdays(Calendar the_date) {

    // MONDAY -> 2
    // TUESDAY -> 3
    // WEDNESDAY -> 4
    // THURSDAY -> 5
    // FRIDAY -> 6

    if ((the_date.get(Calendar.DAY_OF_WEEK) >= Calendar.MONDAY)
            && (the_date.get(Calendar.DAY_OF_WEEK) <= Calendar.FRIDAY)) {
        return true;
    } else {//  w  w w.  j ava 2 s. c om
        return false;
    }
}

From source file:org.eevolution.form.VCRP.java

public boolean checkResourceTypeAvailability(Timestamp dateTime, MResourceType t) {

    if (!t.isDateSlot()) {

        return true;
    }/* w w w  .  ja v a 2 s . co  m*/

    GregorianCalendar gc = new GregorianCalendar();
    gc.setTimeInMillis(dateTime.getTime());

    boolean retValue = false;
    switch (gc.get(Calendar.DAY_OF_WEEK)) {

    case Calendar.SUNDAY:
        retValue = t.isOnSunday();
        break;

    case Calendar.MONDAY:
        retValue = t.isOnMonday();
        break;

    case Calendar.TUESDAY:
        retValue = t.isOnTuesday();
        break;

    case Calendar.WEDNESDAY:
        retValue = t.isOnWednesday();
        break;

    case Calendar.THURSDAY:
        retValue = t.isOnThursday();
        break;

    case Calendar.FRIDAY:
        retValue = t.isOnFriday();
        break;

    case Calendar.SATURDAY:
        retValue = t.isOnSaturday();
        break;
    }

    return retValue;
}

From source file:com.adito.boot.Util.java

/**
 * Get a day of week constant suitable for use with {@link Calendar}
 * given an english day day. This may be any case and only the first
 * 3 characters are tested for (i.e. sun, mon, tue, etc ..)
 * //from  ww  w  . j ava 2  s.  co m
 * @param text
 * @return day of week
 */
public static int getDayOfWeekForText(String text) {
    text = text.toLowerCase();
    if (text.startsWith("sun")) {
        return Calendar.SUNDAY;
    } else if (text.startsWith("mon")) {
        return Calendar.MONDAY;
    } else if (text.startsWith("tue")) {
        return Calendar.TUESDAY;
    } else if (text.startsWith("wed")) {
        return Calendar.WEDNESDAY;
    } else if (text.startsWith("thu")) {
        return Calendar.THURSDAY;
    } else if (text.startsWith("fri")) {
        return Calendar.FRIDAY;
    } else if (text.startsWith("sat")) {
        return Calendar.SATURDAY;
    }
    return 0;
}

From source file:com.aimluck.eip.schedule.util.ScheduleUtils.java

/**
 * ?????????????//from  w ww. j  a v a2 s .  c o  m
 *
 * @param date
 * @param ptn
 * @param startDate
 * @param limitDate
 * @return
 */
public static boolean isView(ALDateTimeField date, String ptn, Date startDate, Date limitDate) {
    int count = 0;
    boolean result = false;
    Calendar cal = Calendar.getInstance();
    cal.setTime(date.getValue());
    // 
    if (ptn.charAt(0) == 'D') {
        result = true;
        count = 1;
        // , 
    } else if (ptn.charAt(0) == 'W') {

        int dow = cal.get(Calendar.DAY_OF_WEEK);
        // ??
        int dowim = cal.get(Calendar.DAY_OF_WEEK_IN_MONTH);
        if (ptn.charAt(8) == 'N' || ptn.charAt(8) == 'L' || dowim == Character.getNumericValue(ptn.charAt(8))) {
            switch (dow) {
            // 
            case Calendar.SUNDAY:
                result = ptn.charAt(1) != '0';
                break;
            // 
            case Calendar.MONDAY:
                result = ptn.charAt(2) != '0';
                break;
            // ?
            case Calendar.TUESDAY:
                result = ptn.charAt(3) != '0';
                break;
            // 
            case Calendar.WEDNESDAY:
                result = ptn.charAt(4) != '0';
                break;
            // 
            case Calendar.THURSDAY:
                result = ptn.charAt(5) != '0';
                break;
            // 
            case Calendar.FRIDAY:
                result = ptn.charAt(6) != '0';
                break;
            // 
            case Calendar.SATURDAY:
                result = ptn.charAt(7) != '0';
                break;
            default:
                result = false;
                break;
            }
            if (ptn.length() == 9) {
                count = 8;
            } else {
                count = 9;
            }
        }
        // 
    } else if (ptn.charAt(0) == 'M') {
        int mday;
        if (ptn.substring(1, 3).equals("XX")) {
            mday = cal.getActualMaximum(Calendar.DATE);
        } else {
            mday = Integer.parseInt(ptn.substring(1, 3));
        }
        result = Integer.parseInt(date.getDay()) == mday;
        count = 3;
    } else if (ptn.charAt(0) == 'Y') {
        int ymonth = Integer.parseInt(ptn.substring(1, 3));
        int yday = Integer.parseInt(ptn.substring(3, 5));
        int month = Integer.parseInt(date.getMonth());
        int day = Integer.parseInt(date.getDay());
        if (ymonth == month && yday == day) {
            result = true;
            count = 5;
        } else {
            result = false;
        }
    } else {
        return true;
    }

    if (result) {
        if (ptn.charAt(count) == 'L') {
            // ????
            if (equalsToDate(startDate, date.getValue(), false)
                    || equalsToDate(limitDate, date.getValue(), false)) {
                // ???
                result = true;
            } else {
                // ????????????
                result = result && startDate.before(cal.getTime()) && limitDate.after(cal.getTime());
            }
        }
    }

    return result;
}

From source file:org.sakaiproject.signup.tool.jsf.organizer.CopyMeetingSignupMBean.java

private void retrieveRecurrenceData(List<SignupMeeting> upTodateOrginMeetings) {
    /*to see if the recurring events have a 'Start_Now' type already*/
    if (Utilities.testSignupBeginStartNowType(upTodateOrginMeetings)) {
        setSignupBeginsType(START_NOW);//overwrite previous value
        setSignupBegins(6);//default value; not used
    }/* www.  ja  va  2 s  .c om*/

    Date lastDate = new Date();
    if (upTodateOrginMeetings == null || upTodateOrginMeetings.isEmpty())
        return;

    /*if this is the last one*/
    Calendar cal = Calendar.getInstance();
    cal.setTime(this.signupMeeting.getStartTime());
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    setRepeatUntil(cal.getTime());

    int listSize = upTodateOrginMeetings.size();
    if (listSize > 1) {
        /*set last recurred Date for recurrence events*/
        lastDate = upTodateOrginMeetings.get(listSize - 1).getStartTime();
        cal.setTime(lastDate);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        setRepeatUntil(cal.getTime());

        String repeatType = upTodateOrginMeetings.get(listSize - 1).getRepeatType();
        if (repeatType != null && !ONCE_ONLY.equals(repeatType)) {
            setRepeatType(repeatType);
            setRepeatTypeUnknown(false);
            return;
        }

        /*The following code is to make it old version backward compatible
         * It will be cleaned after a while.
         */
        Calendar calFirst = Calendar.getInstance();
        Calendar calSecond = Calendar.getInstance();
        /*The following code is to make it old version backward compatible*/

        /*
         * we can only get approximate estimation by assuming it's a
         * succession. take the last two which are more likely be in a sequence
         */
        calFirst.setTime(upTodateOrginMeetings.get(listSize - 2).getStartTime());
        calFirst.set(Calendar.SECOND, 0);
        calFirst.set(Calendar.MILLISECOND, 0);
        calSecond.setTime(upTodateOrginMeetings.get(listSize - 1).getStartTime());
        calSecond.set(Calendar.SECOND, 0);
        calSecond.set(Calendar.MILLISECOND, 0);
        int tmp = calSecond.get(Calendar.DATE);
        int daysDiff = (int) (calSecond.getTimeInMillis() - calFirst.getTimeInMillis()) / DAY_IN_MILLISEC;
        setRepeatTypeUnknown(false);
        if (daysDiff == perDay)//could have weekdays get into this one, not very accurate.
            setRepeatType(DAILY);
        else if (daysDiff == perWeek)
            setRepeatType(WEEKLY);
        else if (daysDiff == perBiweek)
            setRepeatType(BIWEEKLY);
        else if (daysDiff == 3 && calFirst.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY)
            setRepeatType(WEEKDAYS);
        else {
            /*case:unknown repeatType*/
            setRepeatTypeUnknown(true);
        }
    }
}

From source file:org.exist.xquery.modules.mail.SendEmailFunction.java

/**
 * Returns the current date and time in an RFC822 format, suitable for an email Date Header
 *
 * @return      RFC822 formated date and time as a String
 *//*from  w w  w.  ja  va2 s  . co m*/
private String getDateRFC822() {

    String dateString = new String();
    final Calendar rightNow = Calendar.getInstance();

    //Day of the week
    switch (rightNow.get(Calendar.DAY_OF_WEEK)) {
    case Calendar.MONDAY:
        dateString = "Mon";
        break;

    case Calendar.TUESDAY:
        dateString = "Tue";
        break;

    case Calendar.WEDNESDAY:
        dateString = "Wed";
        break;

    case Calendar.THURSDAY:
        dateString = "Thu";
        break;

    case Calendar.FRIDAY:
        dateString = "Fri";
        break;

    case Calendar.SATURDAY:
        dateString = "Sat";
        break;

    case Calendar.SUNDAY:
        dateString = "Sun";
        break;
    }

    dateString += ", ";

    //Date
    dateString += rightNow.get(Calendar.DAY_OF_MONTH);
    dateString += " ";

    //Month
    switch (rightNow.get(Calendar.MONTH)) {
    case Calendar.JANUARY:
        dateString += "Jan";
        break;

    case Calendar.FEBRUARY:
        dateString += "Feb";
        break;

    case Calendar.MARCH:
        dateString += "Mar";
        break;

    case Calendar.APRIL:
        dateString += "Apr";
        break;

    case Calendar.MAY:
        dateString += "May";
        break;

    case Calendar.JUNE:
        dateString += "Jun";
        break;

    case Calendar.JULY:
        dateString += "Jul";
        break;

    case Calendar.AUGUST:
        dateString += "Aug";
        break;

    case Calendar.SEPTEMBER:
        dateString += "Sep";
        break;

    case Calendar.OCTOBER:
        dateString += "Oct";
        break;

    case Calendar.NOVEMBER:
        dateString += "Nov";
        break;

    case Calendar.DECEMBER:
        dateString += "Dec";
        break;
    }
    dateString += " ";

    //Year
    dateString += rightNow.get(Calendar.YEAR);
    dateString += " ";

    //Time
    String tHour = Integer.toString(rightNow.get(Calendar.HOUR_OF_DAY));
    if (tHour.length() == 1) {
        tHour = "0" + tHour;
    }

    String tMinute = Integer.toString(rightNow.get(Calendar.MINUTE));
    if (tMinute.length() == 1) {
        tMinute = "0" + tMinute;
    }

    String tSecond = Integer.toString(rightNow.get(Calendar.SECOND));
    if (tSecond.length() == 1) {
        tSecond = "0" + tSecond;
    }

    dateString += tHour + ":" + tMinute + ":" + tSecond + " ";

    //TimeZone Correction
    String tzSign = new String();
    String tzHours = new String();
    String tzMinutes = new String();

    final TimeZone thisTZ = rightNow.getTimeZone();
    int tzOffset = thisTZ.getOffset(rightNow.getTime().getTime()); //get timezone offset in milliseconds
    tzOffset = (tzOffset / 1000); //convert to seconds
    tzOffset = (tzOffset / 60); //convert to minutes

    //Sign
    if (tzOffset > 1) {
        tzSign = "+";
    } else {
        tzSign = "-";
        tzOffset *= -1;
    }

    //Calc Hours and Minutes?
    if (tzOffset >= 60) {
        //Minutes and Hours
        tzHours += (tzOffset / 60); //hours

        // do we need to prepend a 0
        if (tzHours.length() == 1) {
            tzHours = "0" + tzHours;
        }

        tzMinutes += (tzOffset % 60); //minutes

        // do we need to prepend a 0
        if (tzMinutes.length() == 1) {
            tzMinutes = "0" + tzMinutes;
        }
    } else {
        //Just Minutes
        tzHours = "00";
        tzMinutes += tzOffset;
        // do we need to prepend a 0
        if (tzMinutes.length() == 1) {
            tzMinutes = "0" + tzMinutes;
        }
    }

    dateString += tzSign + tzHours + tzMinutes;

    return dateString;
}

From source file:com.alkacon.opencms.v8.calendar.CmsSerialDateWidget.java

/**
 * Returns the macro resolver with initialized macros to generate the serial date input form.<p>
 * /* w w  w.  ja va 2 s . c om*/
 * @param cms an initialized instance of a CmsObject
 * @param widgetDialog the dialog where the widget is used on
 * @param param the widget parameter to generate the widget for
 * @return the macro resolver with initialized macros
 */
protected CmsMacroResolver getMacroResolverForForm(CmsObject cms, I_CmsWidgetDialog widgetDialog,
        I_CmsWidgetParameter param) {

    CmsMacroResolver resolver = CmsMacroResolver.newInstance();
    // set cms object and localized messages in resolver
    resolver.setCmsObject(cms);
    CmsMessages messages = new CmsMessages(CmsSerialDateWidget.class.getPackage().getName() + ".messages",
            widgetDialog.getLocale());
    resolver.setMessages(messages);
    // delete empty macros which were not replaced
    resolver.setKeepEmptyMacros(false);

    // create the serial entry date object
    String paramValue = param.getStringValue(cms);
    Map<String, String> params = CmsStringUtil.splitAsMap(paramValue,
            String.valueOf(CmsProperty.VALUE_LIST_DELIMITER), String.valueOf(CmsProperty.VALUE_MAP_DELIMITER));
    // create the entry date from the field values
    CmsCalendarEntryDateSerial entryDate = CmsCalendarSerialDateFactory.getSerialDate(params,
            widgetDialog.getLocale());
    if (entryDate == null) {
        // no entry date created yet, build an empty default date
        Calendar start = new GregorianCalendar(widgetDialog.getLocale());
        Calendar end = (Calendar) start.clone();
        entryDate = new CmsCalendarEntryDateSerial(start, end);
        entryDate.setSerialEndType(I_CmsCalendarSerialDateOptions.END_TYPE_NEVER);
    }

    // vars for daily options
    String dayDailyInterval = "1";
    boolean dayEveryWorkingDay = false;
    // vars for weekly options
    String weekWeeklyInterval = "1";
    // vars for monthly options
    int monthSelectedIndexWeekDayOfMonth = 0;
    int monthSelectedWeekDay = -1;
    String monthDayOfMonth = "1";
    String monthMonthlyInterval = "1";
    String monthMonthlyIntervalWeekDay = "1";
    boolean monthUseWeekday = false;
    // vars for yearly options
    String yearDayOfMonth = "1";
    boolean yearUseWeekday = false;
    int yearSelectedIndexMonth = 0;
    int yearSelectedIndexWeekDayOfMonth = 0;
    int yearSelectedWeekDayDay = -1;
    int yearSelectedIndexWeekDayMonth = 0;

    if (entryDate.getSerialOptions() != null) {
        // fill the variables depending on the selected serial date type
        String serialTypeMacroPrefix = MACRO_PREFIX_PARAMVALUE + PARAM_SERIALTYPE + ".";
        // set serial type radio selection
        resolver.addMacro(serialTypeMacroPrefix + entryDate.getSerialOptions().getSerialType(), ATTR_CHECKED);
        switch (entryDate.getSerialOptions().getSerialType()) {
        // set values for the selected serial type
        case I_CmsCalendarSerialDateOptions.TYPE_DAILY:
            CmsCalendarSerialDateDailyOptions dailyOptions = (CmsCalendarSerialDateDailyOptions) entryDate
                    .getSerialOptions();
            dayEveryWorkingDay = dailyOptions.isEveryWorkingDay();
            dayDailyInterval = String.valueOf(dailyOptions.getDailyInterval());
            break;
        case I_CmsCalendarSerialDateOptions.TYPE_WEEKLY:
            CmsCalendarSerialDateWeeklyOptions weeklyOptions = (CmsCalendarSerialDateWeeklyOptions) entryDate
                    .getSerialOptions();
            weekWeeklyInterval = String.valueOf(weeklyOptions.getWeeklyInterval());
            // check the chosen week day checkboxes
            serialTypeMacroPrefix = MACRO_PREFIX_PARAMVALUE + PARAM_WEEK_WEEKDAY + ".";
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.MONDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.MONDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.TUESDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.TUESDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.WEDNESDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.WEDNESDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.THURSDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.THURSDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.FRIDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.FRIDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.SATURDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.SATURDAY, ATTR_CHECKED);
            }
            if (weeklyOptions.getWeekDays().contains(new Integer(Calendar.SUNDAY))) {
                resolver.addMacro(serialTypeMacroPrefix + Calendar.SUNDAY, ATTR_CHECKED);
            }
            break;
        case I_CmsCalendarSerialDateOptions.TYPE_MONTHLY:
            CmsCalendarSerialDateMonthlyOptions monthlyOptions = (CmsCalendarSerialDateMonthlyOptions) entryDate
                    .getSerialOptions();
            monthUseWeekday = monthlyOptions.isUseWeekDay();
            if (!monthlyOptions.isUseWeekDay()) {
                monthDayOfMonth = String.valueOf(monthlyOptions.getDayOfMonth());
                monthMonthlyInterval = String.valueOf(monthlyOptions.getMonthlyInterval());
            } else {
                // set selected index of select boxes
                monthSelectedIndexWeekDayOfMonth = monthlyOptions.getDayOfMonth() - 1;
                monthSelectedWeekDay = monthlyOptions.getWeekDay();
                monthMonthlyIntervalWeekDay = String.valueOf(monthlyOptions.getMonthlyInterval());
            }
            break;
        case I_CmsCalendarSerialDateOptions.TYPE_YEARLY:
            CmsCalendarSerialDateYearlyOptions yearlyOptions = (CmsCalendarSerialDateYearlyOptions) entryDate
                    .getSerialOptions();
            yearUseWeekday = yearlyOptions.isUseWeekDay();
            if (!yearlyOptions.isUseWeekDay()) {
                yearDayOfMonth = String.valueOf(yearlyOptions.getDayOfMonth());
                yearSelectedIndexMonth = yearlyOptions.getMonth();
            } else {
                yearSelectedIndexWeekDayOfMonth = yearlyOptions.getDayOfMonth() - 1;
                yearSelectedWeekDayDay = yearlyOptions.getWeekDay();
                yearSelectedIndexWeekDayMonth = yearlyOptions.getMonth();
            }
            break;
        default:
            // nothing do do here, should never happen
        }
    } else {
        // no serial entry created yet, add some defaults
        resolver.addMacro(
                MACRO_PREFIX_PARAMVALUE + PARAM_SERIALTYPE + "." + I_CmsCalendarSerialDateOptions.TYPE_DAILY,
                ATTR_CHECKED);
        resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_WEEK_WEEKDAY + "." + Calendar.MONDAY, ATTR_CHECKED);

    }
    // set time settings
    String startTime = getCalendarLocalizedTime(widgetDialog.getLocale(), widgetDialog.getMessages(),
            entryDate.getStartDate().getTimeInMillis(), false, true);
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_STARTTIME, startTime);

    String endTime = "";
    if (!entryDate.getStartDate().equals(entryDate.getEndDate())) {
        // end time is different from start time, get localized value
        endTime = getCalendarLocalizedTime(widgetDialog.getLocale(), widgetDialog.getMessages(),
                entryDate.getEndDate().getTimeInMillis(), false, true);
    }
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_ENDTIME, endTime);

    resolver.addMacro("select.durationdays",
            buildSelectDurationDays(PARAM_DURATIONDAYS, messages, entryDate.getDuration()));

    // set found values to serial option tabs
    // daily options
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_DAY_DAILYINTERVAL, dayDailyInterval);
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_DAY_EVERYWORKINGDAY + "." + dayEveryWorkingDay,
            ATTR_CHECKED);

    // weekly options
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_WEEK_WEEKLYINTERVAL, weekWeeklyInterval);

    // monthly options
    // mark the correct radio
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_MONTH_SERIALMONTHDAY + "." + monthUseWeekday,
            ATTR_CHECKED);
    // set the macros for the day of month options
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_MONTH_DAYOFMONTH, monthDayOfMonth);
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_MONTH_MONTHLYINTERVAL, monthMonthlyInterval);
    // set the macros for the week day of month options
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_MONTH_MONTHLYINTERVALWEEKDAY,
            monthMonthlyIntervalWeekDay);
    // build the select boxes
    resolver.addMacro("select.monthnumberofweekday",
            buildSelectNumberOfWeekDayOfMonth(
                    PARAM_MONTH_NUMBEROFWEEKDAYOFMONTH, "onfocus=\"document.getElementById('"
                            + PARAM_MONTH_SERIALMONTHDAY + ".true').checked = true;\"",
                    messages, monthSelectedIndexWeekDayOfMonth));
    resolver.addMacro("select.monthweekday",
            buildSelectWeekDay(PARAM_MONTH_WEEKDAY, "onfocus=\"document.getElementById('"
                    + PARAM_MONTH_SERIALMONTHDAY + ".true').checked = true;\"", messages,
                    monthSelectedWeekDay));

    // yearly options
    // mark the correct radio
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_YEAR_SERIALYEARDAY + "." + yearUseWeekday, ATTR_CHECKED);
    // set the macros for the day of month options
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_YEAR_DAYOFMONTH, yearDayOfMonth);
    resolver.addMacro("select.yearmonth", buildSelectMonth(PARAM_YEAR_MONTH,
            "onfocus=\"document.getElementById('" + PARAM_YEAR_SERIALYEARDAY + ".false').checked = true;\"",
            messages, yearSelectedIndexMonth));
    // set the macros for the week day of month options
    resolver.addMacro("select.yearnumberofweekday",
            buildSelectNumberOfWeekDayOfMonth(PARAM_YEAR_WEEKDAYOFMONTH, "onfocus=\"document.getElementById('"
                    + PARAM_YEAR_SERIALYEARDAY + ".true').checked = true;\"", messages,
                    yearSelectedIndexWeekDayOfMonth));
    resolver.addMacro("select.yearweekday",
            buildSelectWeekDay(PARAM_YEAR_WEEKDAY, "onfocus=\"document.getElementById('"
                    + PARAM_YEAR_SERIALYEARDAY + ".true').checked = true;\"", messages,
                    yearSelectedWeekDayDay));
    resolver.addMacro("select.yearmonthweekday",
            buildSelectMonth(PARAM_YEAR_WEEKDAYMONTH, "onfocus=\"document.getElementById('"
                    + PARAM_YEAR_SERIALYEARDAY + ".true').checked = true;\"", messages,
                    yearSelectedIndexWeekDayMonth));

    // set serial duration values

    // set start date
    resolver.addMacro("calendar.startdate",
            buildDateInput("startdate", widgetDialog, entryDate.getStartDate()));
    Calendar serialEndDate = entryDate.getSerialEndDate();
    if (serialEndDate == null) {
        serialEndDate = entryDate.getStartDate();
    }
    resolver.addMacro("calendar.serialenddate", buildDateInput("serialenddate", widgetDialog, serialEndDate));

    // set occurences
    int occurences = 10;
    if (entryDate.getSerialEndType() == I_CmsCalendarSerialDateOptions.END_TYPE_TIMES) {
        occurences = entryDate.getOccurences();
    }
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_OCCURENCES, String.valueOf(occurences));

    // set the end type radio buttons
    resolver.addMacro(MACRO_PREFIX_PARAMVALUE + PARAM_ENDTYPE + "." + entryDate.getSerialEndType(),
            ATTR_CHECKED);

    return resolver;
}