Example usage for org.joda.time DateTime dayOfMonth

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

Introduction

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

Prototype

public Property dayOfMonth() 

Source Link

Document

Get the day of month property which provides access to advanced functionality.

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//from  w w  w  .  j  a v  a 2  s .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.nyu.vida.data_polygamy.utils.FrameworkUtils.java

License:BSD License

public static String getTemporalStr(int temporalResolution, int time) {

    DateTime dt = new DateTime(((long) time) * 1000, DateTimeZone.UTC);
    String temporal = "";

    switch (temporalResolution) {

    case HOUR:/* w  ww . ja v  a2  s.  c  om*/
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString() + "-"
                + dt.dayOfMonth().getAsString() + "-" + dt.hourOfDay().getAsString();
        break;
    case DAY:
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString() + "-"
                + dt.dayOfMonth().getAsString();
        break;
    case WEEK:
        temporal = dt.weekyear().getAsString() + "-" + dt.weekOfWeekyear().getAsString();
        break;
    case MONTH:
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString();
        break;
    case YEAR:
        temporal = dt.year().getAsString();
        break;
    default:
        temporal = null;
        break;
    }

    return temporal;
}

From source file:edu.nyu.vida.data_polygamy.utils.FrameworkUtils.java

License:BSD License

public static String getTemporalStr(int temporalResolution, DateTime dt) {

    String temporal = "";

    switch (temporalResolution) {

    case HOUR://from   www .ja  va  2 s  .c o m
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString() + "-"
                + dt.dayOfMonth().getAsString() + "-" + dt.hourOfDay().getAsString();
        break;
    case DAY:
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString() + "-"
                + dt.dayOfMonth().getAsString();
        break;
    case WEEK:
        temporal = dt.weekyear().getAsString() + "-" + dt.weekOfWeekyear().getAsString();
        break;
    case MONTH:
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString();
        break;
    case YEAR:
        temporal = dt.year().getAsString();
        break;
    default:
        temporal = null;
        break;
    }

    return temporal;
}

From source file:edu.nyu.vida.data_polygamy.utils.FrameworkUtils.java

License:BSD License

public static int getTime(int temporalResolution, String[] input, int tempPosition) {

    String temporal = "";
    String format = "";

    long time = 0L;

    try {//  w  ww . ja va2 s.  co m
        time = ((long) Double.parseDouble(input[tempPosition])) * 1000;
    } catch (Exception e) {
        return -1;
    }

    if (time < 0)
        return -1;

    DateTime dt = new DateTime(time, DateTimeZone.UTC);

    switch (temporalResolution) {

    case HOUR:
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString() + "-"
                + dt.dayOfMonth().getAsString() + "-" + dt.hourOfDay().getAsString();
        format = "yyyy-MM-dd-HH z";
        break;
    case DAY:
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString() + "-"
                + dt.dayOfMonth().getAsString();
        format = "yyyy-MM-dd z";
        break;
    case WEEK:
        temporal = dt.weekyear().getAsString() + "-" + dt.weekOfWeekyear().getAsString();
        format = "xxxx-ww z";
        break;
    case MONTH:
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString();
        format = "yyyy-MM z";
        break;
    case YEAR:
        temporal = dt.year().getAsString();
        format = "yyyy z";
        break;
    default:
        temporal = null;
        format = "";
        break;
    }

    if (temporal == null)
        return -1;

    DateTimeFormatter formatter = DateTimeFormat.forPattern(format);
    return (int) (formatter.parseDateTime(temporal + " UTC").getMillis() / 1000);
}

From source file:edu.nyu.vida.data_polygamy.utils.FrameworkUtils.java

License:BSD License

public static int getTime(int temporalResolution, int[] input, int tempPosition) {

    String temporal = "";
    String format = "";

    long time = 0L;

    try {/*from   w  ww. j  a  va 2 s.c  o m*/
        time = ((long) input[tempPosition]) * 1000;
    } catch (Exception e) {
        return -1;
    }

    DateTime dt = new DateTime(time, DateTimeZone.UTC);

    switch (temporalResolution) {

    case HOUR:
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString() + "-"
                + dt.dayOfMonth().getAsString() + "-" + dt.hourOfDay().getAsString();
        format = "yyyy-MM-dd-HH z";
        break;
    case DAY:
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString() + "-"
                + dt.dayOfMonth().getAsString();
        format = "yyyy-MM-dd z";
        break;
    case WEEK:
        temporal = dt.weekyear().getAsString() + "-" + dt.weekOfWeekyear().getAsString();
        format = "xxxx-ww z";
        break;
    case MONTH:
        temporal = dt.year().getAsString() + "-" + dt.monthOfYear().getAsString();
        format = "yyyy-MM z";
        break;
    case YEAR:
        temporal = dt.year().getAsString();
        format = "yyyy z";
        break;
    default:
        temporal = null;
        format = "";
        break;
    }

    if (temporal == null)
        return -1;

    DateTimeFormatter formatter = DateTimeFormat.forPattern(format);
    return (int) (formatter.parseDateTime(temporal + " UTC").getMillis() / 1000);
}

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

License:Open Source License

public void updateDate() {
    DateTime dt = DateTime.now();
    String dayStr = dt.dayOfMonth().getAsShortText();
    String monthStr = dt.monthOfYear().getAsShortText().toUpperCase();
    dayTv.setText(dayStr);/*from   www  .j a  va 2s  .c  om*/
    monthTv.setText(monthStr);
}

From source file:eu.eidas.auth.commons.DateUtil.java

License:Open Source License

/**
 * Fulfils dateValue with a valid date. The following rules are applied:
 * a) If the dateValue only contains the year then fulfils with last year's day.
 * e.g. this method returns 19951231 to the 1995 dateValue.
 * b) If the dateValue contains the year and the month then fulfils with last month's day.
 * e.g. this method returns 19950630 to the 199505 dateValue.
 *
 * @param dateValue The date to be fulfilled.
 *
 * @return The dateValue fulfilled.// w  w  w.  j  a  va2  s . c  o  m
 */
@Nonnull
private static String fulfilDate(@Nonnull String dateValue) {
    Preconditions.checkNotLonger(dateValue, "dateValue", FULL_DATE_SIZE);

    final StringBuilder strBuf = new StringBuilder(FULL_DATE_SIZE);
    strBuf.append(dateValue);
    // if the IdP just provides the year then we must fulfil the date.
    if (dateValue.length() == YEAR_DATE_SIZE) {
        strBuf.append(EIDASValues.LAST_MONTH.toString());
    }
    // if the IdP provides the year and the month then we must fulfil the
    // date.
    if (dateValue.length() == MONTH_DATE_SIZE || strBuf.length() == MONTH_DATE_SIZE) {
        // IdP doesn't provide the day, so we will use DateTime to
        // calculate it.
        final String noDayCons = EIDASValues.NO_DAY_DATE_FORMAT.toString();
        final DateTimeFormatter fmt = DateTimeFormat.forPattern(noDayCons);
        final DateTime dateTime = fmt.parseDateTime(strBuf.toString());
        // Append the last month's day.
        strBuf.append(dateTime.dayOfMonth().withMaximumValue().getDayOfMonth());
    }

    return strBuf.toString();
}

From source file:eu.stork.peps.auth.commons.DateUtil.java

License:Open Source License

/**
 * Fulfils dateValue with a valid date. The following roles are applied: a) If
 * the dateValue only contains the year then fulfils with last year's day.
 * e.g. this method returns 19951231 to the 1995 dateValue. b) If the
 * dateValue contains the year and the month then fulfils with last month's
 * day. e.g. this method returns 19950630 to the 199505 dateValue.
 * /*from w  ww .  java2 s.  c  o m*/
 * @param dateValue The date to be fulfilled.
 * 
 * @return The dateValue fulfilled.
 */
private static String fulfilDate(final String dateValue) {

    final StringBuffer strBuf = new StringBuffer();
    strBuf.append(dateValue);
    // if the IdP just provides the year then we must fullfil the date.
    if (dateValue.length() == YEAR_DATE_SIZE) {
        strBuf.append(PEPSValues.LAST_MONTH.toString());
    }
    // if the IdP provides the year and the month then we must fullfil the
    // date.
    if (dateValue.length() == MONTH_DATE_SIZE || strBuf.length() == MONTH_DATE_SIZE) {
        // IdP doesn't provide the day, so we will use DateTime to
        // calculate it.
        final String noDayCons = PEPSValues.NO_DAY_DATE_FORMAT.toString();
        final DateTimeFormatter fmt = DateTimeFormat.forPattern(noDayCons);
        final DateTime dateTime = fmt.parseDateTime(strBuf.toString());
        // Append the last month's day.
        strBuf.append(dateTime.dayOfMonth().withMaximumValue().getDayOfMonth());
    }

    return strBuf.toString();
}

From source file:eu.uqasar.web.dashboard.widget.datadeviation.DataDeviationWidget.java

License:Apache License

public Options getQualityParameterOptions() {

    Project proj = null;/*from  ww  w  .j a v  a2 s  .  co  m*/
    String projName = "";
    String qualityParameterChoice = "";

    proj = getProject(settings.get("project"));
    if (proj != null) {
        projName = proj.getName();
        System.out.println("projName: " + projName);
    }

    qualityParameterChoice = settings.get("qualityParams");
    //      if (qualityParameterChoice == null || qualityParameterChoice.isEmpty()) {         
    //         qualityParameterChoice = OBJS;
    //      }   

    System.out.println("qualityParameterChoice: " + qualityParameterChoice);

    Options options = new Options();
    ChartOptions chartOptions = new ChartOptions();

    // DATA
    List<HistoricValuesBaseIndicator> historicValues = getHistoricalValues();
    List<HistoricValuesBaseIndicator> qualityParam = new LinkedList<>();

    List<Float> baseIndicatorValues = new LinkedList<>();
    // get and save parameter values
    for (HistoricValuesBaseIndicator hv : historicValues) {
        if (hv.getBaseIndicator().getName().equals(qualityParameterChoice)) {
            qualityParam.add(hv);
            baseIndicatorValues.add(hv.getBaseIndicator().getValue());
        }
    }

    // calculate deviations
    // test: overwrite values
    //      baseIndicatorValues.set(0, 40087.0f);
    //      baseIndicatorValues.set(1, 39457.0f);
    //      baseIndicatorValues.set(2, 41347.0f);
    //      baseIndicatorValues.set(3, 44777.0f);

    System.out.println("baseIndicatorValues: " + baseIndicatorValues);
    List<Float> deviations = calculateDeviations(baseIndicatorValues);
    System.out.println("deviations: " + deviations);

    SeriesType seriesType = SeriesType.SPLINE;
    chartOptions.setType(seriesType);
    chartTitle = new Title("Deviations of " + qualityParameterChoice);
    options.setTitle(chartTitle);
    PointSeries series = new PointSeries();
    series.setType(seriesType);

    List<String> xAxisLabels = new ArrayList<>();

    for (int f = 0; f < deviations.size(); f++) {
        String name = qualityParam.get(f).getBaseIndicator().getName();
        float value = deviations.get(f);
        series.addPoint(new Point(name, value));
        //xAxis Label
        DateTime dateTime = new DateTime(qualityParam.get(f).getDate());
        String dateFormated = String.valueOf(dateTime.getMonthOfYear()) + "/"
                + String.valueOf(dateTime.dayOfMonth().get()) + "/" + String.valueOf(dateTime.getYear()) + " - "
                + String.valueOf(dateTime.getHourOfDay()) + ":" + String.valueOf(dateTime.getMinuteOfHour());
        xAxisLabels.add(dateFormated);

    }

    // Date on xAxis
    Axis xAxis = new Axis();
    xAxis.setType(AxisType.DATETIME);
    xAxis.setCategories(xAxisLabels);
    xAxis.setLabels(new Labels().setRotation(-60).setAlign(HorizontalAlignment.RIGHT).setStyle(
            new CssStyle().setProperty("font-size", "10px").setProperty("font-family", "Verdana, sans-serif")));
    options.setxAxis(xAxis);

    options.addSeries(series);
    options.setChartOptions(chartOptions);

    return options;
}

From source file:eu.uqasar.web.dashboard.widget.uqasardatavisualization.UqasarDataVisualizationWidget.java

License:Apache License

public Options getQualityParameterOptions() {

    Project proj = null;/*from  w  w  w . ja  va2s.  c o m*/
    String projName = "";
    Map<String, List<TreeNode>> qualityParameters = new HashMap<>();
    String qualityParameterChoice = "";

    proj = getProject(settings.get("project"));
    if (proj != null) {
        projName = proj.getName();
    }

    qualityParameterChoice = settings.get("qualityParams");
    if (qualityParameterChoice == null || qualityParameterChoice.isEmpty()) {
        qualityParameterChoice = ALL.get(0); // all params
    }
    System.out.println("qualityParameterChoice: " + qualityParameterChoice);

    Options options = new Options();
    ChartOptions chartOptions = new ChartOptions();

    if (qualityParameterChoice.equals(ALL.get(0))) {
        // DATA
        qualityParameters = getQualityParametersFromProject(proj);
        SeriesType seriesType = SeriesType.COLUMN;
        // CHART
        chartOptions.setType(seriesType);
        chartTitle = new Title(ALL.get(0) + " of " + projName);
        options.setTitle(chartTitle);
        for (String key : qualityParameters.keySet()) {
            PointSeries series = new PointSeries();
            series.setType(seriesType);
            int siz = qualityParameters.get(key).size();
            series.addPoint(new Point(key, siz));
            series.setName(key);
            options.addSeries(series);
        }
        options.setChartOptions(chartOptions);
    } else {

        // DATA
        List<HistoricValuesBaseIndicator> HistoricValuesBaseIndicator = getHistoricalValues();
        List<HistoricValuesBaseIndicator> data = new LinkedList<>();

        for (HistoricValuesBaseIndicator hv : HistoricValuesBaseIndicator) {
            if (hv.getBaseIndicator().getName().equals(qualityParameterChoice)) {
                data.add(hv);
            }
        }

        SeriesType seriesType = SeriesType.SPLINE;
        chartOptions.setType(seriesType);
        chartTitle = new Title(qualityParameterChoice + " of " + projName);
        options.setTitle(chartTitle);
        PointSeries series = new PointSeries();
        series.setType(seriesType);

        List<String> xAxisLabels = new ArrayList<>();

        for (HistoricValuesBaseIndicator dat : data) {
            String name = dat.getBaseIndicator().getName();
            float value = dat.getBaseIndicator().getValue();
            series.addPoint(new Point(name, value));

            //xAxis Label
            //xAxis Label
            DateTime dateTime = new DateTime(dat.getDate());
            String dateFormated = String.valueOf(dateTime.getMonthOfYear()) + "/"
                    + String.valueOf(dateTime.dayOfMonth().get()) + "/" + String.valueOf(dateTime.getYear())
                    + " - " + String.valueOf(dateTime.getHourOfDay()) + ":"
                    + String.valueOf(dateTime.getMinuteOfHour());
            xAxisLabels.add(dateFormated);

        }

        // Date on xAxis
        Axis xAxis = new Axis();
        xAxis.setType(AxisType.DATETIME);
        xAxis.setCategories(xAxisLabels);
        xAxis.setLabels(
                new Labels().setRotation(-60).setAlign(HorizontalAlignment.RIGHT).setStyle(new CssStyle()
                        .setProperty("font-size", "10px").setProperty("font-family", "Verdana, sans-serif")));
        options.setxAxis(xAxis);

        options.addSeries(series);
        options.setChartOptions(chartOptions);
    }

    return options;
}