Example usage for org.joda.time DateTime getHourOfDay

List of usage examples for org.joda.time DateTime getHourOfDay

Introduction

In this page you can find the example usage for org.joda.time DateTime getHourOfDay.

Prototype

public int getHourOfDay() 

Source Link

Document

Get the hour of day field value.

Usage

From source file:edu.illinois.cs.cogcomp.temporal.normalizer.main.timex2interval.RelativeDate.java

License:Open Source License

/**
 * This function converts phrase that contains a relative date: more than xxx, etc
 * @param start anchor time/*www .j a v  a  2s  .c o  m*/
 * @param phrase
  * @return
  */
public static TimexChunk Relativerule(DateTime start, String phrase) {
    int numterm;
    int flag_ago = 0;
    int i;
    int year;
    int month;
    int day;
    DateTime finish;
    String temp1;
    String temp2;
    String temp3;
    int amount;
    Interval interval;
    interval = new Interval(start, start);
    phrase = phrase.toLowerCase();
    phrase = phrase.trim();
    TimexChunk tc = new TimexChunk();

    if (phrase.equals("recently") || phrase.equals("recent") || phrase.equals("past")
            || phrase.equals("at time") || phrase.equals("previously")) {
        tc.addAttribute(TimexNames.type, TimexNames.DATE);
        tc.addAttribute(TimexNames.value, TimexNames.PAST_REF);
        return tc;
    }

    if (phrase.contains("future")) {
        tc.addAttribute(TimexNames.type, TimexNames.DATE);
        tc.addAttribute(TimexNames.value, TimexNames.FUTURE_REF);
        return tc;
    }

    // Handle some special cases
    if (phrase.endsWith("earlier")) {
        phrase = phrase.replace("earlier", "ago");
        phrase = phrase.trim();
    }

    if (phrase.contains("ago")) {
        phrase = phrase.replaceAll("ago", "");
        phrase = "last " + phrase;
        flag_ago = 1;
    }

    if (phrase.contains("later")) {
        phrase = phrase.replaceAll("later", "");
        phrase = "after " + phrase;
    }

    if (phrase.contains("after")) {
        phrase = phrase.replaceAll("after", "");
        phrase = "after " + phrase;
    }

    if (phrase.contains("more than")) {
        phrase = phrase.replaceAll("more than", "after");
    }

    if (phrase.contains("less than")) {
        phrase = phrase.replaceAll("less than", "in");
    }
    if (phrase.contains("last decade")) {
        phrase = phrase.replaceAll("last decade", "last ten years");
    }

    if (phrase.contains("next decade")) {
        phrase = phrase.replaceAll("next decade", "next ten years");

    }

    String patternStr = "\\s*(" + positionTerm + "|" + shiftIndicator + ")\\s*((?:\\d{1,4}|" + number
            + ")\\s*(?:" + number + ")?)\\s*(" + dateUnit + "|" + timeUnit + ")\\s*\\w*";

    Pattern pattern = Pattern.compile(patternStr);
    Matcher matcher = pattern.matcher(phrase);
    boolean matchFound = matcher.find();
    DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd");
    DateTimeFormatter ymFmt = DateTimeFormat.forPattern("yyyy-MM");
    DateTimeFormatter yFmt = DateTimeFormat.forPattern("yyyy");
    if (matchFound) {
        for (i = 1; i <= 3; i++) {
            if (matcher.group(i) == null) {
                i--;
                break;
            }
        }
        if (i == 4) {
            i--;
        }
        numterm = i;
        if (numterm == 3) {

            temp1 = matcher.group(1);
            temp2 = matcher.group(2);
            temp3 = matcher.group(3);
            amount = Integer.parseInt(converter(temp2));
            if (temp1.equals("last") || temp1.equals("past") || temp1.equals("previous")
                    || temp1.equals("since") || temp1.equals("this") || temp1.equals("recent")) {
                if (flag_ago == 0) {
                    if (temp3.equals("years") || temp3.equals("year")) {
                        finish = start.minusYears(amount);
                        year = finish.getYear();
                        month = finish.getMonthOfYear();
                        day = finish.getDayOfMonth();
                        finish = new DateTime(start.getYear(), start.getMonthOfYear(), start.getDayOfMonth(), 0,
                                0, 0, 0);
                        start = new DateTime(year, month, day, 0, 0, 0, 0);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "P" + amount + "Y");
                        return tc;
                    }

                    else if (temp3.equals("day") || temp3.equals("days")) {
                        finish = start.minusDays(amount);
                        year = finish.getYear();
                        month = finish.getMonthOfYear();
                        day = finish.getDayOfMonth();
                        finish = new DateTime(start.getYear(), start.getMonthOfYear(), start.getDayOfMonth(), 0,
                                0, 0, 0);
                        start = new DateTime(year, month, day, 0, 0, 0, 0);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "P" + amount + "D");
                        return tc;

                    }

                    else if (temp3.equals("month") || temp3.equals("months")) {
                        finish = start.minusMonths(amount);
                        year = start.getYear();
                        month = start.getMonthOfYear();
                        day = start.getDayOfMonth();
                        start = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(),
                                0, 0, 0, 0);
                        finish = new DateTime(year, month, day, 0, 0, 0, 0);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "P" + amount + "M");
                        return tc;
                    }

                    else if (temp3.equals("week") || temp3.equals("weeks")) {
                        finish = start.minusWeeks(amount);
                        year = start.getYear();
                        month = start.getMonthOfYear();
                        day = start.getDayOfMonth();
                        start = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(),
                                0, 0, 0, 0);
                        finish = new DateTime(year, month, day, 0, 0, 0, 0);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "P" + amount + "W");
                        return tc;
                    }

                    else if (temp3.equals("decade") || temp3.equals("decades")) {

                        finish = start.minusYears(amount * 10);
                        year = start.getYear();
                        month = start.getMonthOfYear();
                        day = start.getDayOfMonth();
                        start = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(),
                                0, 0, 0, 0);
                        finish = new DateTime(year, month, day, 0, 0, 0, 0);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "P" + amount + "DE");
                        return tc;
                    }

                    else if (temp3.equals("century") || temp3.equals("centuries")) {
                        finish = start.minusYears(amount * 100);
                        year = start.getYear();
                        month = start.getMonthOfYear();
                        day = start.getDayOfMonth();
                        start = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(),
                                0, 0, 0, 0);
                        finish = new DateTime(year, month, day, 0, 0, 0, 0);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "P" + amount + "CE");
                        return tc;
                    }

                    else if (temp3.equals("hour") || temp3.equals("hours")) {
                        finish = start.minusHours(amount);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "PT" + amount + "H");
                        return tc;
                    }

                    else if (temp3.equals("minute") || temp3.equals("minutes")) {
                        finish = start.minusMinutes(amount);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "PT" + amount + "M");
                        return tc;
                    }

                    else if (temp3.equals("second") || temp3.equals("seconds")) {
                        finish = start.minusSeconds(amount);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "PT" + amount + "S");
                        return tc;
                    }

                }

                else {
                    flag_ago = 0;
                    if (temp3.equals("years") || temp3.equals("year")) {
                        finish = start.minusYears(amount);
                        year = finish.getYear();
                        month = finish.getMonthOfYear();
                        day = finish.getDayOfMonth();
                        start = new DateTime(year, 1, 1, 0, 0, 0, 0);
                        finish = new DateTime(year, 12, 31, 23, 59, 59, 59);
                        tc.addAttribute(TimexNames.type, TimexNames.DATE);
                        tc.addAttribute(TimexNames.value, yFmt.print(finish));
                        return tc;
                    }

                    else if (temp3.equals("day") || temp3.equals("days")) {
                        finish = start.minusDays(amount);
                        year = finish.getYear();
                        month = finish.getMonthOfYear();
                        day = finish.getDayOfMonth();
                        finish = new DateTime(year, month, day, 23, 59, 59, 59);
                        start = new DateTime(year, month, day, 0, 0, 0, 0);
                        tc.addAttribute(TimexNames.type, TimexNames.DATE);
                        tc.addAttribute(TimexNames.value, fmt.print(finish));
                        return tc;

                    }

                    else if (temp3.equals("month") || temp3.equals("months")) {
                        finish = start.minusMonths(amount);
                        year = finish.getYear();
                        month = finish.getMonthOfYear();
                        day = finish.dayOfMonth().getMaximumValue();
                        start = new DateTime(year, month, 1, 0, 0, 0, 0);
                        finish = new DateTime(year, month, day, 23, 59, 59, 59);
                        tc.addAttribute(TimexNames.type, TimexNames.DATE);
                        tc.addAttribute(TimexNames.value, ymFmt.print(finish));
                        return tc;
                    }

                    else if (temp3.equals("week") || temp3.equals("weeks")) {
                        finish = start.minusWeeks(amount);
                        start = finish.minusWeeks(amount + 1);
                        year = start.getYear();
                        month = start.getMonthOfYear();
                        day = start.getDayOfMonth();
                        finish = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(),
                                23, 59, 59, 59);
                        start = new DateTime(year, month, day, 0, 0, 0, 0);
                        tc.addAttribute(TimexNames.type, TimexNames.DATE);
                        tc.addAttribute(TimexNames.value,
                                yFmt.print(finish) + "-W" + String.valueOf(finish.getWeekOfWeekyear()));
                        return tc;
                    }

                    else if (temp3.equals("decade") || temp3.equals("decades")) {

                        finish = start.minusYears(amount * 10);
                        year = finish.getYear();
                        month = finish.getMonthOfYear();
                        day = finish.getDayOfMonth();
                        start = new DateTime(year, 1, 1, 0, 0, 0, 0);
                        finish = new DateTime(year, 12, 31, 23, 59, 59, 59);
                        tc.addAttribute(TimexNames.type, TimexNames.DATE);
                        tc.addAttribute(TimexNames.value, String.valueOf(finish.getYear() / 10) + "X");
                        return tc;
                    }

                    else if (temp3.equals("century") || temp3.equals("centuries")) {
                        finish = start.minusYears(amount * 100);
                        year = finish.getYear();
                        month = start.getMonthOfYear();
                        day = start.getDayOfMonth();
                        start = new DateTime(year, 1, 1, 0, 0, 0, 0);
                        finish = new DateTime(year, 12, 31, 23, 59, 59, 59);
                        tc.addAttribute(TimexNames.type, TimexNames.DATE);
                        tc.addAttribute(TimexNames.value, String.valueOf(finish.getCenturyOfEra()));
                        return tc;
                    }

                    else if (temp3.equals("hour") || temp3.equals("hours")) {
                        finish = start.minusHours(amount);
                        start = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(),
                                finish.getHourOfDay(), 0, 0, 0);
                        finish = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(),
                                finish.getHourOfDay(), 59, 59, 59);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "PT" + amount + "H");
                        return tc;
                    }

                    else if (temp3.equals("minute") || temp3.equals("minutes")) {
                        finish = start.minusMinutes(amount);
                        start = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(),
                                finish.getHourOfDay(), finish.minuteOfHour().get(), 0, 0);
                        finish = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(),
                                finish.getHourOfDay(), finish.minuteOfHour().get(), 59, 59);
                        tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                        tc.addAttribute(TimexNames.value, "PT" + amount + "M");
                        return tc;
                    }

                }

            }

            else if (temp1.equals("in") || temp1.equals("upcoming") || temp1.equals("next")
                    || temp1.equals("from") || temp1.equals("following") || temp1.equals("during")
                    || temp1.equals("additional")) {
                if (temp3.equals("years") || temp3.equals("year")) {
                    finish = start.minusYears((-1) * amount);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    finish = new DateTime(start.getYear(), start.getMonthOfYear(), start.getDayOfMonth(), 23,
                            59, 59, 59);
                    start = new DateTime(year, month, day, 23, 59, 59, 59);
                    interval = new Interval(finish, start);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "Y");
                    return tc;
                }

                else if (temp3.equals("day") || temp3.equals("days")) {
                    finish = start.minusDays((-1) * amount);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    finish = new DateTime(start.getYear(), start.getMonthOfYear(), start.getDayOfMonth(), 23,
                            59, 59, 59);
                    start = new DateTime(year, month, day, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "D");
                    return tc;

                }

                else if (temp3.equals("month") || temp3.equals("months")) {
                    finish = start.minusMonths((-1) * amount);
                    year = start.getYear();
                    month = start.getMonthOfYear();
                    day = start.getDayOfMonth();
                    start = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(), 23,
                            59, 59, 59);
                    finish = new DateTime(year, month, day, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "M");
                    return tc;
                }

                else if (temp3.equals("week") || temp3.equals("weeks")) {
                    finish = start.minusWeeks((-1) * amount);
                    year = start.getYear();
                    month = start.getMonthOfYear();
                    day = start.getDayOfMonth();
                    start = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(), 23,
                            59, 59, 59);
                    finish = new DateTime(year, month, day, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "W");
                    return tc;
                }

                else if (temp3.equals("decade") || temp3.equals("decades")) {
                    finish = start.minusYears((-1) * amount * 10);
                    year = start.getYear();
                    month = start.getMonthOfYear();
                    day = start.getDayOfMonth();
                    start = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(), 23,
                            59, 59, 59);
                    finish = new DateTime(year, month, day, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    amount = amount * 10;
                    tc.addAttribute(TimexNames.value, "P" + amount + "Y");
                    return tc;
                }

                else if (temp3.equals("century") || temp3.equals("centuries")) {
                    finish = start.minusYears((-1) * amount * 100);
                    year = start.getYear();
                    month = start.getMonthOfYear();
                    day = start.getDayOfMonth();
                    start = new DateTime(finish.getYear(), finish.getMonthOfYear(), finish.getDayOfMonth(), 23,
                            59, 59, 59);
                    finish = new DateTime(year, month, day, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    amount *= 100;
                    tc.addAttribute(TimexNames.value, "P" + amount + "Y");
                    return tc;
                }

                else if (temp3.equals("hour") || temp3.equals("hours")) {
                    finish = start.minusHours((-1) * amount);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "PT" + amount + "H");
                    return tc;
                }

                else if (temp3.equals("minute") || temp3.equals("minutes")) {
                    finish = start.minusMinutes((-1) * amount);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "PT" + amount + "M");
                    return tc;
                }

                else if (temp3.equals("second") || temp3.equals("seconds")) {
                    finish = start.minusSeconds((-1) * amount);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "PT" + amount + "S");
                    return tc;
                }

            }

            else if (temp1.equals("before") || temp1.equals("prior to") || temp1.equals("preceding")) {
                if (temp3.equals("years") || temp3.equals("year")) {
                    finish = start.minusYears(amount);
                    finish = finish.minusDays(1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    start = new DateTime(0000, 1, 1, 0, 0, 0, 0);
                    finish = new DateTime(year, month, day, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "Y");
                    return tc;
                }

                else if (temp3.equals("day") || temp3.equals("days")) {

                    finish = start.minusDays(amount);
                    finish = finish.minusDays(1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    start = new DateTime(0000, 1, 1, 0, 0, 0, 0);
                    finish = new DateTime(year, month, day, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "D");
                    return tc;

                }

                else if (temp3.equals("month") || temp3.equals("months")) {
                    finish = start.minusMonths(amount);
                    finish = finish.minusDays(1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    start = new DateTime(0000, 1, 1, 0, 0, 0, 0);
                    finish = new DateTime(year, month, day, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "M");
                    return tc;
                }

                else if (temp3.equals("week") || temp3.equals("weeks")) {
                    finish = start.minusWeeks(amount);
                    finish = finish.minusDays(1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    start = new DateTime(0000, 1, 1, 0, 0, 0, 0);
                    finish = new DateTime(year, month, day, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "W");
                    return tc;
                }

                else if (temp3.equals("decade") || temp3.equals("decades")) {
                    finish = start.minusYears(amount * 10);
                    finish = finish.minusDays(1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    start = new DateTime(0000, 1, 1, 0, 0, 0, 0);
                    finish = new DateTime(year, month, day, 23, 59, 59, 59);
                    amount *= 10;
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "Y");
                    return tc;
                }

                else if (temp3.equals("century") || temp3.equals("centuries")) {
                    finish = start.minusYears(amount * 100);
                    finish = finish.minusDays(1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    start = new DateTime(0000, 1, 1, 0, 0, 0, 0);
                    finish = new DateTime(year, month, day, 23, 59, 59, 59);
                    amount *= 100;
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "Y");
                    return tc;
                }

                else if (temp3.equals("hour") || temp3.equals("hours")) {
                    finish = start.minusHours(amount);
                    start = new DateTime(0000, 1, 1, 0, 0, 0, 0);
                    //interval = new Interval(start, finish);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "PT" + amount + "H");
                    return tc;
                }

                else if (temp3.equals("minute") || temp3.equals("minutes")) {
                    finish = start.minusMinutes(amount);
                    start = new DateTime(0000, 1, 1, 0, 0, 0, 0);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "PT" + amount + "M");
                    return tc;
                }

                else if (temp3.equals("second") || temp3.equals("seconds")) {
                    finish = start.minusSeconds(amount);
                    start = new DateTime(0000, 1, 1, 0, 0, 0, 0);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "PT" + amount + "S");
                    return tc;
                }

            }

            else if (temp1.equals("after") || temp1.equals("over")) {
                if (temp3.equals("years") || temp3.equals("year")) {
                    finish = start.minusYears((-1) * amount);
                    finish = finish.minusDays(-1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    finish = new DateTime(year, month, day, 0, 0, 0, 0);
                    start = new DateTime(9999, 12, 31, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "Y");
                    return tc;
                }

                else if (temp3.equals("day") || temp3.equals("days")) {
                    finish = start.minusDays((-1) * amount);
                    finish = finish.minusDays(-1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    finish = new DateTime(year, month, day, 0, 0, 0, 0);
                    start = new DateTime(9999, 12, 31, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "D");
                    return tc;

                }

                else if (temp3.equals("month") || temp3.equals("months")) {
                    finish = start.minusMonths((-1) * amount);
                    finish = finish.minusDays(-1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    finish = new DateTime(year, month, day, 0, 0, 0, 0);
                    start = new DateTime(9999, 12, 31, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "M");
                    return tc;
                }

                else if (temp3.equals("week") || temp3.equals("weeks")) {
                    finish = start.minusWeeks((-1) * amount);
                    finish = finish.minusDays(-1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    finish = new DateTime(year, month, day, 0, 0, 0, 0);
                    start = new DateTime(9999, 12, 31, 23, 59, 59, 59);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "W");
                    return tc;
                }

                else if (temp3.equals("decade") || temp3.equals("decades")) {
                    finish = start.minusYears((-1) * amount * 10);
                    finish = finish.minusDays(-1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    finish = new DateTime(year, month, day, 0, 0, 0, 0);
                    start = new DateTime(9999, 12, 31, 23, 59, 59, 59);
                    amount *= 10;
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "Y");
                    return tc;
                }

                else if (temp3.equals("century") || temp3.equals("centuries")) {
                    finish = start.minusYears((-1) * amount * 100);
                    finish = finish.minusDays(-1);
                    year = finish.getYear();
                    month = finish.getMonthOfYear();
                    day = finish.getDayOfMonth();
                    finish = new DateTime(year, month, day, 0, 0, 0, 0);
                    start = new DateTime(9999, 12, 31, 23, 59, 59, 59);
                    interval = new Interval(finish, start);
                    amount *= 100;
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "P" + amount + "Y");
                    return tc;
                }

                else if (temp3.equals("hour") || temp3.equals("hours")) {
                    finish = start.minusHours((-1) * amount);
                    start = new DateTime(9999, 12, 31, 23, 59, 59, 59);
                    interval = new Interval(finish, start);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "PT" + amount + "H");
                    return tc;
                }

                else if (temp3.equals("minute") || temp3.equals("minutes")) {
                    finish = start.minusMinutes((-1) * amount);
                    start = new DateTime(9999, 12, 31, 23, 59, 59, 59);
                    interval = new Interval(finish, start);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "PT" + amount + "M");
                    return tc;
                }

                else if (temp3.equals("second") || temp3.equals("seconds")) {
                    finish = start.minusSeconds((-1) * amount);
                    start = new DateTime(9999, 12, 31, 23, 59, 59, 59);
                    interval = new Interval(finish, start);
                    tc.addAttribute(TimexNames.type, TimexNames.DURATION);
                    tc.addAttribute(TimexNames.value, "PT" + amount + "S");
                    return tc;
                }

            }
        }
    }
    return null;
}

From source file:edu.utexas.cs.tactex.servercustomers.factoredcustomer.DefaultCapacityOriginator.java

License:Open Source License

private double adjustCapacityForPeriodicSkew(double capacity, DateTime when, boolean verbose) {
    int day = when.getDayOfWeek(); // 1=Monday, 7=Sunday
    int hour = when.getHourOfDay(); // 0-23

    double periodicSkew = capacityStructure.dailySkew[day - 1] * capacityStructure.hourlySkew[hour];
    if (verbose)/*ww  w.ja v a  2  s  .com*/
        logCapacityDetails(logIdentifier + ": periodic skew = " + periodicSkew);
    return capacity * periodicSkew;
}

From source file:edu.utexas.cs.tactex.servercustomers.factoredcustomer.TimeseriesGenerator.java

License:Open Source License

private double generateNextArima101x101(int timeslot) {
    /** R code/*from w ww  .  j a v a 2 s . c  om*/
    boostTimeSeries = function(Xt, lambda, t, N, Xht, Xdt, gamma) {
    return (Xt + (lambda * ((log(t-26))^2/(log(N-26))^2) * ((1 - gamma) * Xht + gamma * Xdt)))
    }
    for (t in compRange) {                  
    Zf[t] = Y0 + Yd[D[t]] + Yh[H[t]] + phi1 * Zf[t-1] + Phi1 * Zf[t-24] #+ rnorm(1, 0, sigma^2) + 
                  theta1 * (Zf[t-1] - Zf[t-2]) + Theta1 * (Zf[t-24] - Zf[t-25]) + 
                  theta1 * Theta1 * (Zf[t-25] - Zf[t-26]) 
    Zbf[t] = boostTimeSeries(Zf[t], lambda, t, N, Yh[H[t]], Yd[D[t]], gamma) #+ rnorm(1, 0, sigma^2)
    }
    **/

    DateTime now = service.getTimeslotRepo().getTimeForIndex(timeslot).toDateTime(DateTimeZone.UTC);
    int day = now.getDayOfWeek(); // 1=Monday, 7=Sunday
    int hour = now.getHourOfDay(); // 0-23

    int t = timeslot;

    double logNext = Y0 + Yd[day - 1] + Yh[hour] + phi1 * getLog(t - 1) + Phi1 * getLog(t - 24)
            + theta1 * (getLog(t - 1) - getLog(t - 2)) + Theta1 * (getLog(t - 24) - getLog(t - 25))
            + theta1 * Theta1 * (getLog(t - 25) - getLog(t - 26));
    logNext = logNext + (lambda * (Math.pow(Math.log(t - 26), 2) / Math.pow(Math.log(FORECAST_HORIZON - 26), 2))
            * ((1 - gamma) * Yh[hour] + gamma * Yd[day - 1]));
    //logNext = logNext + Math.pow(sigma, 2) * arimaNoise.nextGaussian();
    double next = Math.exp(logNext);
    if (Double.isNaN(next))
        throw new Error("Generated NaN as next time series element!");
    return next;
}

From source file:edu.washington.cs.mystatus.odk.widgets.TimeWidget.java

License:Apache License

public TimeWidget(Context context, final FormEntryPrompt prompt) {
    super(context, prompt);

    mTimePicker = new TimePicker(getContext());
    mTimePicker.setId(QuestionWidget.newUniqueId());
    mTimePicker.setFocusable(!prompt.isReadOnly());
    mTimePicker.setEnabled(!prompt.isReadOnly());

    String clockType = android.provider.Settings.System.getString(context.getContentResolver(),
            android.provider.Settings.System.TIME_12_24);
    if (clockType == null || clockType.equalsIgnoreCase("24")) {
        mTimePicker.setIs24HourView(true);
    }//  w w w.  jav  a  2  s. c  om

    // If there's an answer, use it.
    if (prompt.getAnswerValue() != null) {

        // create a new date time from date object using default time zone
        DateTime ldt = new DateTime(((Date) ((TimeData) prompt.getAnswerValue()).getValue()).getTime());
        System.out.println("retrieving:" + ldt);

        mTimePicker.setCurrentHour(ldt.getHourOfDay());
        mTimePicker.setCurrentMinute(ldt.getMinuteOfHour());

    } else {
        // create time widget with current time as of right now
        clearAnswer();
    }

    mTimePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
        @Override
        public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
            MyStatus.getInstance().getActivityLogger().logInstanceAction(TimeWidget.this, "onTimeChanged",
                    String.format("%1$02d:%2$02d", hourOfDay, minute), mPrompt.getIndex());
        }
    });

    setGravity(Gravity.LEFT);
    addView(mTimePicker);

}

From source file:es.pode.adl.datamodels.datatypes.DateTimeValidator.java

License:Open Source License

/**
 * Compares two valid data model elements for equality.
 * /* w w  w  . j av a  2  s.  co  m*/
 * @param iFirst  The first value being compared.
 * 
 * @param iSecond The second value being compared.
 * 
 * @param iDelimiters The common set of delimiters associated with the
 * values being compared.
 * 
 * @return Returns <code>true</code> if the two values are equal, otherwise
 *         <code>false</code>.
 */
public boolean compare(String iFirst, String iSecond, Vector iDelimiters) {

    boolean equal = true;

    DateTimeFormatter dtp = ISODateTimeFormat.dateTimeParser();

    try {
        // Parse the first string and remove the sub-seconds
        DateTime dt1 = dtp.parseDateTime(iFirst);
        dt1 = new DateTime(dt1.getYear(), dt1.getMonthOfYear(), dt1.getDayOfMonth(), dt1.getHourOfDay(),
                dt1.getMinuteOfHour(), dt1.getSecondOfMinute(), 0);

        // Parse the second string and remove the sub-seconds
        DateTime dt2 = dtp.parseDateTime(iSecond);
        dt2 = new DateTime(dt2.getYear(), dt2.getMonthOfYear(), dt2.getDayOfMonth(), dt2.getHourOfDay(),
                dt2.getMinuteOfHour(), dt2.getSecondOfMinute(), 0);

        equal = dt1.equals(dt2);
    } catch (Exception e) {
        // String format error -- these cannot be equal
        equal = false;
    }

    return equal;
}

From source file:es.ucm.fdi.tutorias.business.boundary.Emails.java

License:Open Source License

private boolean crearArchivoCal(String nombreCalendario, Tutoria tutoria) {
    String hostEmail = username;//from  ww w  .  j  a  v  a2  s  . c o m

    //Initialize values
    String calFile = nombreCalendario;
    ;

    //start time
    DateTime comienzo = tutoria.getComienzoTutoria();
    java.util.Calendar startCal = java.util.Calendar.getInstance();
    startCal.set(comienzo.getYear(), comienzo.getMonthOfYear(), comienzo.getDayOfMonth(),
            comienzo.getHourOfDay(), comienzo.getMinuteOfHour());

    //end time
    java.util.Calendar endCal = java.util.Calendar.getInstance();
    DateTime fin = tutoria.getFinTutoria();
    endCal.set(fin.getYear(), fin.getMonthOfYear(), fin.getDayOfMonth(), fin.getHourOfDay(),
            fin.getMinuteOfHour());

    String subject = "Tutora";
    String location = "Location - \"Facultad de Informtica-UCM\"";
    String description = tutoria.getResumenDudas();

    net.fortuna.ical4j.model.Calendar calendar = new net.fortuna.ical4j.model.Calendar();
    calendar.getProperties().add(new ProdId("-//ProyectoSI-FdiUcm//iCal4j 1.0//EN"));
    calendar.getProperties().add(Version.VERSION_2_0);
    calendar.getProperties().add(CalScale.GREGORIAN);

    SimpleDateFormat sdFormat = new SimpleDateFormat("yyyyMMdd'T'hhmmss'Z'");
    String strDate = sdFormat.format(startCal.getTime());

    net.fortuna.ical4j.model.Date startDt = null;
    try {
        startDt = new net.fortuna.ical4j.model.Date(strDate, "yyyyMMdd'T'hhmmss'Z'");
    } catch (ParseException e) {
        e.printStackTrace();
        return false;
    }

    long diff = endCal.getTimeInMillis() - startCal.getTimeInMillis();
    int min = (int) (diff / (1000 * 60));

    Dur dur = new Dur(0, 0, min, 0);

    //Creating a meeting event
    VEvent meeting = new VEvent(startDt, dur, subject);

    meeting.getProperties().add(new Location(location));
    meeting.getProperties().add(new Description());

    try {
        meeting.getProperties().getProperty(Property.DESCRIPTION).setValue(description);
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    } catch (URISyntaxException e) {
        e.printStackTrace();
        return false;
    } catch (ParseException e) {
        e.printStackTrace();
        return false;
    }

    try {
        meeting.getProperties().add(new Organizer("MAILTO:" + hostEmail));
    } catch (URISyntaxException e) {
        e.printStackTrace();
        return false;
    }

    calendar.getComponents().add(meeting);

    FileOutputStream fout = null;

    try {
        fout = new FileOutputStream(calFile);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return false;
    }

    CalendarOutputter outputter = new CalendarOutputter();
    outputter.setValidating(false);

    try {
        outputter.output(calendar, fout);
        return true;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    } catch (ValidationException e) {
        e.printStackTrace();
        return false;
    }
}

From source file:es.usc.citius.servando.calendula.fragments.RoutineCreateOrEditFragment.java

License:Open Source License

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_create_or_edit_routine, container, false);

    pColor = DB.patients().getActive(getActivity()).color();

    mNameTextView = (TextView) rootView.findViewById(R.id.routine_edit_name);
    timeButton = (Button) rootView.findViewById(R.id.button2);

    timeButton.setTextColor(pColor);/*from   ww w  .  j  av  a2 s  . c om*/

    long routineId = -1;

    if (getArguments() != null) {
        routineId = getArguments().getLong(CalendulaApp.INTENT_EXTRA_ROUTINE_ID, -1);
    }

    if (routineId == -1 && savedInstanceState != null) {
        routineId = savedInstanceState.getLong(CalendulaApp.INTENT_EXTRA_ROUTINE_ID, -1);
    }

    if (routineId != -1) {
        mRoutine = Routine.findById(routineId);
        setRoutine(mRoutine);
        hour = mRoutine.time().getHourOfDay();
        minute = mRoutine.time().getMinuteOfHour();
    } else {
        DateTime now = DateTime.now();
        hour = now.getHourOfDay();
        minute = now.getMinuteOfHour();
    }

    if (getDialog() != null) {
        getDialog().setTitle(R.string.title_create_routine_activity);
        mConfirmButton = (Button) rootView.findViewById(R.id.done_button);
        mConfirmButton.setVisibility(View.VISIBLE);
        mConfirmButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onEdit();
            }
        });
    }

    timeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            float density = getResources().getDisplayMetrics().densityDpi;
            Log.d("RoutineCreateOrEditFragment", "Density: " + density);
            if (density >= DisplayMetrics.DENSITY_XHIGH) {
                RadialTimePickerDialog timePickerDialog = RadialTimePickerDialog
                        .newInstance(RoutineCreateOrEditFragment.this, hour, minute, true);
                timePickerDialog.show(getChildFragmentManager(), "111");
            } else {
                TimePickerBuilder tpb = new TimePickerBuilder().setFragmentManager(getChildFragmentManager())
                        .setStyleResId(R.style.BetterPickersDialogFragment_Light);
                tpb.addTimePickerDialogHandler(RoutineCreateOrEditFragment.this);
                tpb.show();
            }

        }
    });

    updateTime();

    return rootView;
}

From source file:es.usc.citius.servando.calendula.fragments.ScheduleImportFragment.java

License:Open Source License

private void setupHourlyRepetitionLinsteners() {
    hourlyIntervalEditText.setOnClickListener(new View.OnClickListener() {
        @Override/*from   w  w  w.j a va 2  s.  c o  m*/
        public void onClick(View v) {
            showHourlyPickerDIalog();
        }
    });

    hourlyIntervalFrom.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            DateTime time = schedule.startTime().toDateTimeToday();

            RadialTimePickerDialog timePickerDialog = RadialTimePickerDialog.newInstance(
                    ScheduleImportFragment.this, time.getHourOfDay(), time.getMinuteOfHour(), true);
            timePickerDialog.show(getChildFragmentManager(), "111");
        }
    });

    hourlyIntervalRepeatDose.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showHourlyDosePickerDialog();
        }
    });
}

From source file:es.usc.citius.servando.calendula.fragments.ScheduleTimetableFragment.java

License:Open Source License

void setupHourlyRepetitionLinsteners() {
    hourlyIntervalEditText.setOnClickListener(new View.OnClickListener() {
        @Override/* w  w w.  ja  v  a2 s  . c  om*/
        public void onClick(View v) {
            showHourlyPickerDIalog();
        }
    });

    hourlyIntervalFrom.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            DateTime time = schedule.startTime().toDateTimeToday();

            RadialTimePickerDialog timePickerDialog = RadialTimePickerDialog.newInstance(
                    ScheduleTimetableFragment.this, time.getHourOfDay(), time.getMinuteOfHour(), true);
            timePickerDialog.show(getChildFragmentManager(), "111");
        }
    });

    hourlyIntervalRepeatDose.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showHourlyDosePickerDialog();
        }
    });
}

From source file:etc.HelperUtils.java

License:Apache License

/**
 * Takes the Timestamp in milis and parses it to the form "yyyy-MM-dd HH:mm" or to "unlimited", if zero
 * //from  w  w w  . j  a  v  a2 s. co m
 * @param ts_Active
 *            the timestamp
 * @return the parsed timestamp
 */
public static String parseStringTs(long ts_Active) {
    if (ts_Active == 0)
        return "unlimited";

    DateTime dt = new DateTime(ts_Active);
    StringBuilder timeString = new StringBuilder();
    // add a leading "0" if the value is under ten
    timeString.append(dt.getYear()).append("-");
    timeString.append(addZero(dt.getMonthOfYear()));
    timeString.append("-");
    timeString.append(addZero(dt.getDayOfMonth()));
    timeString.append(" ");
    timeString.append(addZero(dt.getHourOfDay()));
    timeString.append(":");
    timeString.append(addZero(dt.getMinuteOfHour()));
    return timeString.toString();

}