Example usage for org.joda.time DateTime weekOfWeekyear

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

Introduction

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

Prototype

public Property weekOfWeekyear() 

Source Link

Document

Get the week of a week based year property which provides access to advanced functionality.

Usage

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 ww  w  .  j  av a 2 s  . co 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:io.druid.query.expression.TimestampExtractExprMacro.java

License:Apache License

@Override
public Expr apply(final List<Expr> args) {
    if (args.size() < 2 || args.size() > 3) {
        throw new IAE("Function[%s] must have 2 to 3 arguments", name());
    }// w  ww.jav  a 2  s .  co m

    if (!args.get(1).isLiteral() || args.get(1).getLiteralValue() == null) {
        throw new IAE("Function[%s] unit arg must be literal", name());
    }

    if (args.size() > 2 && !args.get(2).isLiteral()) {
        throw new IAE("Function[%s] timezone arg must be literal", name());
    }

    final Expr arg = args.get(0);
    final Unit unit = Unit.valueOf(((String) args.get(1).getLiteralValue()).toUpperCase());
    final DateTimeZone timeZone;

    if (args.size() > 2) {
        timeZone = ExprUtils.toTimeZone(args.get(2));
    } else {
        timeZone = DateTimeZone.UTC;
    }

    final ISOChronology chronology = ISOChronology.getInstance(timeZone);

    class TimestampExtractExpr implements Expr {
        @Nonnull
        @Override
        public ExprEval eval(final ObjectBinding bindings) {
            final DateTime dateTime = new DateTime(arg.eval(bindings).asLong()).withChronology(chronology);
            switch (unit) {
            case EPOCH:
                return ExprEval.of(dateTime.getMillis());
            case SECOND:
                return ExprEval.of(dateTime.secondOfMinute().get());
            case MINUTE:
                return ExprEval.of(dateTime.minuteOfHour().get());
            case HOUR:
                return ExprEval.of(dateTime.hourOfDay().get());
            case DAY:
                return ExprEval.of(dateTime.dayOfMonth().get());
            case DOW:
                return ExprEval.of(dateTime.dayOfWeek().get());
            case DOY:
                return ExprEval.of(dateTime.dayOfYear().get());
            case WEEK:
                return ExprEval.of(dateTime.weekOfWeekyear().get());
            case MONTH:
                return ExprEval.of(dateTime.monthOfYear().get());
            case QUARTER:
                return ExprEval.of((dateTime.monthOfYear().get() - 1) / 3 + 1);
            case YEAR:
                return ExprEval.of(dateTime.year().get());
            default:
                throw new ISE("Unhandled unit[%s]", unit);
            }
        }

        @Override
        public void visit(final Visitor visitor) {
            arg.visit(visitor);
            visitor.visit(this);
        }
    }

    return new TimestampExtractExpr();
}

From source file:net.schweerelos.timeline.model.Timeline.java

License:Open Source License

private void recalculate() {
    if (start == null || end == null) {
        logger.warn("recalculating aborted, start and/or end is null");
        numSlices = 0;/*from  w  w w . j  av a 2  s.  c  o  m*/
        return;
    }
    Interval interval = new Interval(start, end);

    if (Years.yearsIn(interval).isGreaterThan(Years.ZERO)) {
        // make it start at the start of the current increment mode
        start = start.withDayOfYear(start.dayOfYear().getMinimumValue());
        end = end.withDayOfYear(end.dayOfYear().getMaximumValue());
        interval = new Interval(start, end);

        // figure out number of slices
        numSlices = Years.yearsIn(interval).getYears();
        if (start.plusYears(numSlices).isBefore(end)) {
            numSlices += 1;
        }

        // update label extractor
        sliceLabelExtractor = new SliceLabelExtractor() {
            @Override
            public String extractLabel(DateTime from) {
                return from.year().getAsShortText();
            }
        };

        // update increment
        increment = Years.ONE.toPeriod();
        incrementMode = Mode.Years;
    } else if (Months.monthsIn(interval).isGreaterThan(Months.ZERO)) {
        // make it start at the start of the current increment mode
        start = start.withDayOfMonth(start.dayOfMonth().getMinimumValue());
        end = end.withDayOfMonth(end.dayOfMonth().getMaximumValue());
        interval = new Interval(start, end);

        numSlices = Months.monthsIn(interval).getMonths();
        if (start.plusMonths(numSlices).isBefore(end)) {
            numSlices += 1;
        }

        sliceLabelExtractor = new SliceLabelExtractor() {
            @Override
            public String extractLabel(DateTime from) {
                return from.monthOfYear().getAsShortText();
            }
        };

        increment = Months.ONE.toPeriod();
        incrementMode = Mode.Months;
    } else if (Weeks.weeksIn(interval).isGreaterThan(Weeks.ZERO)) {
        start = start.withDayOfWeek(start.dayOfWeek().getMinimumValue());
        end = end.withDayOfWeek(end.dayOfWeek().getMaximumValue());
        interval = new Interval(start, end);

        numSlices = Weeks.weeksIn(interval).getWeeks();
        if (start.plusWeeks(numSlices).isBefore(end)) {
            numSlices += 1;
        }

        sliceLabelExtractor = new SliceLabelExtractor() {
            @Override
            public String extractLabel(DateTime from) {
                return "W" + from.weekOfWeekyear().getAsShortText();
            }
        };

        increment = Weeks.ONE.toPeriod();
        incrementMode = Mode.Weeks;
    } else {
        numSlices = Days.daysIn(interval).getDays();
        if (start.plusDays(numSlices).isBefore(end)) {
            numSlices += 1;
        }
        if (numSlices == 0) {
            // force at least one day to be drawn
            numSlices = 1;
        }

        sliceLabelExtractor = new SliceLabelExtractor() {
            @Override
            public String extractLabel(DateTime from) {
                return from.dayOfMonth().getAsShortText();
            }
        };

        increment = Days.ONE.toPeriod();
        incrementMode = Mode.Days;
    }

    // reset time of day too
    start = start.withMillisOfDay(start.millisOfDay().getMinimumValue());
    end = end.withMillisOfDay(end.millisOfDay().getMaximumValue());

    // recalculate which intervals are within range
    intervalsWithinRange.clear();
    intervalsWithinRange.addAll(calculateIntervalsWithinRange(start, end));

    // notify listeners
    changeSupport.firePropertyChange(INTERVAL_PROPERTY_KEY, interval, new Interval(start, end));
}

From source file:net.sf.jasperreports.functions.standard.DateTimeFunctions.java

License:Open Source License

/**
 * Returns the number of weeks in a year.
 */// w  ww.j  a  v a2  s . c  o m
@Function("WEEKSINYEAR")
@FunctionParameters({ @FunctionParameter("dateObj") })
public Integer WEEKSINYEAR(Object dateObj) {
    Date date = convertDateObject(dateObj);
    if (date == null) {
        logCannotConvertToDate();
        return null;
    } else {
        DateTime dt = new DateTime(date);
        return dt.weekOfWeekyear().getMaximumValue();
    }
}

From source file:nl.basjes.parse.dissectors.http.TimeStampDissector.java

License:Open Source License

@Override
public void dissect(final Parsable<?> parsable, final String inputname) throws DissectionFailure {
    final ParsedField field = parsable.getParsableField(INPUT_TYPE, inputname);
    final String fieldValue = field.getValue();
    if (fieldValue == null || fieldValue.isEmpty()) {
        return; // Nothing to do here
    }/*  w w w .j a  v  a 2 s.  c om*/

    if (wantAnyAsParsed || wantAnyTZIndependent) {
        // FIXME: YUCK ! Parsing the same thing TWICE just for the Zone ?!?!?
        DateTime dateTime = asParsedFormatter.parseDateTime(fieldValue);
        DateTimeZone zone = dateTime.getZone();
        DateTimeFormatter asParsedWithZoneFormatter = asParsedFormatter.withZone(zone);
        dateTime = asParsedWithZoneFormatter.parseDateTime(fieldValue);

        // As parsed
        if (wantDay) {
            parsable.addDissection(inputname, "TIME.DAY", "day", dateTime.dayOfMonth().getAsString());
        }
        if (wantMonthname) {
            parsable.addDissection(inputname, "TIME.MONTHNAME", "monthname",
                    dateTime.monthOfYear().getAsText(Locale.getDefault()));
        }
        if (wantMonth) {
            parsable.addDissection(inputname, "TIME.MONTH", "month", dateTime.monthOfYear().getAsString());
        }
        if (wantWeekOfWeekYear) {
            parsable.addDissection(inputname, "TIME.WEEK", "weekofweekyear",
                    dateTime.weekOfWeekyear().getAsString());
        }
        if (wantWeekYear) {
            parsable.addDissection(inputname, "TIME.YEAR", "weekyear", dateTime.weekyear().getAsString());
        }
        if (wantYear) {
            parsable.addDissection(inputname, "TIME.YEAR", "year", dateTime.year().getAsString());
        }
        if (wantHour) {
            parsable.addDissection(inputname, "TIME.HOUR", "hour", dateTime.hourOfDay().getAsString());
        }
        if (wantMinute) {
            parsable.addDissection(inputname, "TIME.MINUTE", "minute", dateTime.minuteOfHour().getAsString());
        }
        if (wantSecond) {
            parsable.addDissection(inputname, "TIME.SECOND", "second", dateTime.secondOfMinute().getAsString());
        }
        if (wantMillisecond) {
            parsable.addDissection(inputname, "TIME.MILLISECOND", "millisecond",
                    dateTime.millisOfSecond().getAsString());
        }

        // Timezone independent
        if (wantTimezone) {
            parsable.addDissection(inputname, "TIME.TIMEZONE", "timezone", dateTime.getZone().getID());
        }
        if (wantEpoch) {
            parsable.addDissection(inputname, "TIME.EPOCH", "epoch", Long.toString(dateTime.getMillis()));
        }
    }

    if (wantAnyUTC) {
        // In UTC timezone
        DateTime dateTime = formatter.parseDateTime(fieldValue);

        if (wantDayUTC) {
            parsable.addDissection(inputname, "TIME.DAY", "day_utc", dateTime.dayOfMonth().getAsString());
        }
        if (wantMonthnameUTC) {
            parsable.addDissection(inputname, "TIME.MONTHNAME", "monthname_utc",
                    dateTime.monthOfYear().getAsText(Locale.getDefault()));
        }
        if (wantMonthUTC) {
            parsable.addDissection(inputname, "TIME.MONTH", "month_utc", dateTime.monthOfYear().getAsString());
        }
        if (wantWeekOfWeekYearUTC) {
            parsable.addDissection(inputname, "TIME.WEEK", "weekofweekyear_utc",
                    dateTime.weekOfWeekyear().getAsString());
        }
        if (wantWeekYearUTC) {
            parsable.addDissection(inputname, "TIME.YEAR", "weekyear_utc", dateTime.weekyear().getAsString());
        }
        if (wantYearUTC) {
            parsable.addDissection(inputname, "TIME.YEAR", "year_utc", dateTime.year().getAsString());
        }
        if (wantHourUTC) {
            parsable.addDissection(inputname, "TIME.HOUR", "hour_utc", dateTime.hourOfDay().getAsString());
        }
        if (wantMinuteUTC) {
            parsable.addDissection(inputname, "TIME.MINUTE", "minute_utc",
                    dateTime.minuteOfHour().getAsString());
        }
        if (wantSecondUTC) {
            parsable.addDissection(inputname, "TIME.SECOND", "second_utc",
                    dateTime.secondOfMinute().getAsString());
        }
        if (wantMillisecondUTC) {
            parsable.addDissection(inputname, "TIME.MILLISECOND", "millisecond_utc",
                    dateTime.millisOfSecond().getAsString());
        }
    }
}

From source file:nl.basjes.parse.httpdlog.dissectors.TimeStampDissector.java

License:Apache License

@Override
public void dissect(final Parsable<?> parsable, final String inputname) throws DissectionFailure {
    final ParsedField field = parsable.getParsableField(INPUT_TYPE, inputname);
    String fieldValue = field.getValue().getString();
    if (fieldValue == null || fieldValue.isEmpty()) {
        return; // Nothing to do here
    }/*www. jav a 2s  . co m*/

    fieldValue = fieldValue.toLowerCase(Locale.getDefault());

    if (wantAnyAsParsed || wantAnyTZIndependent) {
        // YUCK ! Parsing the same thing TWICE just for the Zone ?!?!?
        DateTime dateTime = asParsedFormatter.parseDateTime(fieldValue);
        DateTimeZone zone = dateTime.getZone();
        DateTimeFormatter asParsedWithZoneFormatter = asParsedFormatter.withZone(zone);
        dateTime = asParsedWithZoneFormatter.parseDateTime(fieldValue);

        // As parsed
        if (wantDay) {
            parsable.addDissection(inputname, "TIME.DAY", "day", dateTime.dayOfMonth().get());
        }
        if (wantMonthname) {
            parsable.addDissection(inputname, "TIME.MONTHNAME", "monthname",
                    dateTime.monthOfYear().getAsText(Locale.getDefault()));
        }
        if (wantMonth) {
            parsable.addDissection(inputname, "TIME.MONTH", "month", dateTime.monthOfYear().get());
        }
        if (wantWeekOfWeekYear) {
            parsable.addDissection(inputname, "TIME.WEEK", "weekofweekyear", dateTime.weekOfWeekyear().get());
        }
        if (wantWeekYear) {
            parsable.addDissection(inputname, "TIME.YEAR", "weekyear", dateTime.weekyear().get());
        }
        if (wantYear) {
            parsable.addDissection(inputname, "TIME.YEAR", "year", dateTime.year().get());
        }
        if (wantHour) {
            parsable.addDissection(inputname, "TIME.HOUR", "hour", dateTime.hourOfDay().get());
        }
        if (wantMinute) {
            parsable.addDissection(inputname, "TIME.MINUTE", "minute", dateTime.minuteOfHour().get());
        }
        if (wantSecond) {
            parsable.addDissection(inputname, "TIME.SECOND", "second", dateTime.secondOfMinute().get());
        }
        if (wantMillisecond) {
            parsable.addDissection(inputname, "TIME.MILLISECOND", "millisecond",
                    dateTime.millisOfSecond().get());
        }
        if (wantDate) {
            parsable.addDissection(inputname, "TIME.DATE", "date", ISO_DATE_FORMATTER.print(dateTime));
        }

        if (wantTime) {
            parsable.addDissection(inputname, "TIME.TIME", "time", ISO_TIME_FORMATTER.print(dateTime));
        }

        // Timezone independent
        if (wantTimezone) {
            parsable.addDissection(inputname, "TIME.TIMEZONE", "timezone", dateTime.getZone().getID());
        }
        if (wantEpoch) {
            parsable.addDissection(inputname, "TIME.EPOCH", "epoch", dateTime.getMillis());
        }
    }

    if (wantAnyUTC) {
        // In UTC timezone
        DateTime dateTime = formatter.parseDateTime(fieldValue);

        if (wantDayUTC) {
            parsable.addDissection(inputname, "TIME.DAY", "day_utc", dateTime.dayOfMonth().get());
        }
        if (wantMonthnameUTC) {
            parsable.addDissection(inputname, "TIME.MONTHNAME", "monthname_utc",
                    dateTime.monthOfYear().getAsText(Locale.getDefault()));
        }
        if (wantMonthUTC) {
            parsable.addDissection(inputname, "TIME.MONTH", "month_utc", dateTime.monthOfYear().get());
        }
        if (wantWeekOfWeekYearUTC) {
            parsable.addDissection(inputname, "TIME.WEEK", "weekofweekyear_utc",
                    dateTime.weekOfWeekyear().get());
        }
        if (wantWeekYearUTC) {
            parsable.addDissection(inputname, "TIME.YEAR", "weekyear_utc", dateTime.weekyear().get());
        }
        if (wantYearUTC) {
            parsable.addDissection(inputname, "TIME.YEAR", "year_utc", dateTime.year().get());
        }
        if (wantHourUTC) {
            parsable.addDissection(inputname, "TIME.HOUR", "hour_utc", dateTime.hourOfDay().get());
        }
        if (wantMinuteUTC) {
            parsable.addDissection(inputname, "TIME.MINUTE", "minute_utc", dateTime.minuteOfHour().get());
        }
        if (wantSecondUTC) {
            parsable.addDissection(inputname, "TIME.SECOND", "second_utc", dateTime.secondOfMinute().get());
        }
        if (wantMillisecondUTC) {
            parsable.addDissection(inputname, "TIME.MILLISECOND", "millisecond_utc",
                    dateTime.millisOfSecond().get());
        }
        if (wantDateUTC) {
            parsable.addDissection(inputname, "TIME.DATE", "date_utc", ISO_DATE_FORMATTER.print(dateTime));
        }

        if (wantTimeUTC) {
            parsable.addDissection(inputname, "TIME.TIME", "time_utc", ISO_TIME_FORMATTER.print(dateTime));
        }

    }
}

From source file:org.apache.druid.query.expression.TimestampExtractExprMacro.java

License:Apache License

@Override
public Expr apply(final List<Expr> args) {
    if (args.size() < 2 || args.size() > 3) {
        throw new IAE("Function[%s] must have 2 to 3 arguments", name());
    }//from   w w  w .  j av  a 2 s . co  m

    if (!args.get(1).isLiteral() || args.get(1).getLiteralValue() == null) {
        throw new IAE("Function[%s] unit arg must be literal", name());
    }

    if (args.size() > 2 && !args.get(2).isLiteral()) {
        throw new IAE("Function[%s] timezone arg must be literal", name());
    }

    final Expr arg = args.get(0);
    final Unit unit = Unit.valueOf(StringUtils.toUpperCase((String) args.get(1).getLiteralValue()));
    final DateTimeZone timeZone;

    if (args.size() > 2) {
        timeZone = ExprUtils.toTimeZone(args.get(2));
    } else {
        timeZone = DateTimeZone.UTC;
    }

    final ISOChronology chronology = ISOChronology.getInstance(timeZone);

    class TimestampExtractExpr extends ExprMacroTable.BaseScalarUnivariateMacroFunctionExpr {
        private TimestampExtractExpr(Expr arg) {
            super(arg);
        }

        @Nonnull
        @Override
        public ExprEval eval(final ObjectBinding bindings) {
            Object val = arg.eval(bindings).value();
            if (val == null) {
                // Return null if the argument if null.
                return ExprEval.of(null);
            }
            final DateTime dateTime = new DateTime(val, chronology);
            long epoch = dateTime.getMillis() / 1000;

            switch (unit) {
            case EPOCH:
                return ExprEval.of(epoch);
            case MICROSECOND:
                return ExprEval.of(epoch / 1000);
            case MILLISECOND:
                return ExprEval.of(dateTime.millisOfSecond().get());
            case SECOND:
                return ExprEval.of(dateTime.secondOfMinute().get());
            case MINUTE:
                return ExprEval.of(dateTime.minuteOfHour().get());
            case HOUR:
                return ExprEval.of(dateTime.hourOfDay().get());
            case DAY:
                return ExprEval.of(dateTime.dayOfMonth().get());
            case DOW:
                return ExprEval.of(dateTime.dayOfWeek().get());
            case ISODOW:
                return ExprEval.of(dateTime.dayOfWeek().get());
            case DOY:
                return ExprEval.of(dateTime.dayOfYear().get());
            case WEEK:
                return ExprEval.of(dateTime.weekOfWeekyear().get());
            case MONTH:
                return ExprEval.of(dateTime.monthOfYear().get());
            case QUARTER:
                return ExprEval.of((dateTime.monthOfYear().get() - 1) / 3 + 1);
            case YEAR:
                return ExprEval.of(dateTime.year().get());
            case ISOYEAR:
                return ExprEval.of(dateTime.year().get());
            case DECADE:
                // The year field divided by 10, See https://www.postgresql.org/docs/10/functions-datetime.html
                return ExprEval.of(Math.floor(dateTime.year().get() / 10));
            case CENTURY:
                return ExprEval.of(dateTime.centuryOfEra().get() + 1);
            case MILLENNIUM:
                // Years in the 1900s are in the second millennium. The third millennium started January 1, 2001.
                // See https://www.postgresql.org/docs/10/functions-datetime.html
                return ExprEval.of(Math.round(Math.ceil(dateTime.year().get() / 1000)));
            default:
                throw new ISE("Unhandled unit[%s]", unit);
            }
        }

        @Override
        public Expr visit(Shuttle shuttle) {
            Expr newArg = arg.visit(shuttle);
            return shuttle.visit(new TimestampExtractExpr(newArg));
        }
    }

    return new TimestampExtractExpr(arg);
}

From source file:org.apache.phoenix.expression.function.CeilWeekExpression.java

License:Apache License

@Override
public long roundDateTime(DateTime dateTime) {
    return dateTime.weekOfWeekyear().roundCeilingCopy().getMillis();
}

From source file:org.apache.phoenix.expression.function.FloorWeekExpression.java

License:Apache License

@Override
public long roundDateTime(DateTime datetime) {
    return datetime.weekOfWeekyear().roundFloorCopy().getMillis();
}

From source file:org.apache.phoenix.expression.function.RoundWeekExpression.java

License:Apache License

@Override
public long roundDateTime(DateTime dateTime) {
    return dateTime.weekOfWeekyear().roundHalfEvenCopy().getMillis();
}