List of usage examples for org.joda.time DateTime dayOfYear
public Property dayOfYear()
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()); }// w ww . j a v a 2 s . c o 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.jpos.qi.components.DateRange.java
License:Open Source License
private static Map<String, Date> createStartDateMap() { QI app = (QI) UI.getCurrent();// ww w . j av a 2s .com DateTime dt = DateTime.now().millisOfDay().withMinimumValue(); Map<String, Date> map = new HashMap<>(); map.put(LAST_HOUR, DateTime.now().minusHours(1).toDate()); map.put(TODAY, dt.toDate()); map.put(YESTERDAY, dt.minusDays(1).toDate()); map.put(THIS_WEEK, dt.dayOfWeek().withMinimumValue().toDate()); map.put(LAST_WEEK, dt.dayOfWeek().withMinimumValue().minusWeeks(1).toDate()); map.put(THIS_MONTH, dt.dayOfMonth().withMinimumValue().toDate()); map.put(LAST_MONTH, dt.dayOfMonth().withMinimumValue().minusMonths(1).toDate()); map.put(THIS_YEAR, dt.dayOfYear().withMinimumValue().toDate()); map.put(ALL_TIME, null); return map; }
From source file:org.jpos.qi.components.DateRange.java
License:Open Source License
private static Map<String, Date> createEndDateMap() { QI app = (QI) UI.getCurrent();/* ww w.j av a2 s. c o m*/ DateTime dt = DateTime.now().millisOfDay().withMaximumValue(); Map<String, Date> map = new HashMap<>(); map.put(LAST_HOUR, DateTime.now().toDate()); map.put(TODAY, dt.toDate()); map.put(YESTERDAY, dt.minusDays(1).toDate()); map.put(THIS_WEEK, dt.dayOfWeek().withMaximumValue().toDate()); map.put(LAST_WEEK, dt.dayOfWeek().withMaximumValue().minusWeeks(1).toDate()); map.put(THIS_MONTH, dt.dayOfMonth().withMaximumValue().toDate()); map.put(LAST_MONTH, dt.dayOfMonth().withMaximumValue().minusMonths(1).toDate()); map.put(THIS_YEAR, dt.dayOfYear().withMaximumValue().toDate()); map.put(ALL_TIME, null); return map; }
From source file:org.kuali.kpme.tklm.leave.accrual.service.AccrualServiceImpl.java
License:Educational Community License
@Override public DateTime getPreviousAccrualIntervalDate(String earnInterval, DateTime aDate) { DateTime previousAccrualIntervalDate = null; if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.DAILY)) { previousAccrualIntervalDate = aDate.minusDays(1); } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.WEEKLY)) { previousAccrualIntervalDate = aDate.minusWeeks(1).withDayOfWeek(DateTimeConstants.SATURDAY); } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.SEMI_MONTHLY)) { previousAccrualIntervalDate = aDate.minusDays(15); if (previousAccrualIntervalDate.getDayOfMonth() <= 15) { previousAccrualIntervalDate = previousAccrualIntervalDate.withDayOfMonth(15); } else {/*w ww. j ava2 s . c om*/ previousAccrualIntervalDate = previousAccrualIntervalDate .withDayOfMonth(previousAccrualIntervalDate.dayOfMonth().getMaximumValue()); } } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.MONTHLY)) { previousAccrualIntervalDate = aDate.minusMonths(1); previousAccrualIntervalDate = previousAccrualIntervalDate .withDayOfMonth(previousAccrualIntervalDate.dayOfMonth().getMaximumValue()); } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.YEARLY)) { previousAccrualIntervalDate = aDate.minusYears(1); previousAccrualIntervalDate = previousAccrualIntervalDate .withDayOfYear(previousAccrualIntervalDate.dayOfYear().getMaximumValue()); } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.NO_ACCRUAL)) { previousAccrualIntervalDate = aDate; } return previousAccrualIntervalDate; }
From source file:org.kuali.kpme.tklm.leave.accrual.service.AccrualServiceImpl.java
License:Educational Community License
@Override public DateTime getNextAccrualIntervalDate(String earnInterval, DateTime aDate) { DateTime nextAccrualIntervalDate = null; if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.DAILY)) { nextAccrualIntervalDate = aDate; } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.WEEKLY)) { if (aDate.getDayOfWeek() != DateTimeConstants.SATURDAY) { nextAccrualIntervalDate = aDate.withDayOfWeek(DateTimeConstants.SATURDAY); } else {/*from w w w . j a v a2 s . co m*/ nextAccrualIntervalDate = aDate.withWeekOfWeekyear(1); } } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.SEMI_MONTHLY)) { if (aDate.getDayOfMonth() <= 15) { nextAccrualIntervalDate = aDate.withDayOfMonth(15); } else { nextAccrualIntervalDate = aDate.withDayOfMonth(aDate.dayOfMonth().getMaximumValue()); } } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.MONTHLY)) { nextAccrualIntervalDate = aDate.withDayOfMonth(aDate.dayOfMonth().getMaximumValue()); } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.YEARLY)) { nextAccrualIntervalDate = aDate.withDayOfYear(aDate.dayOfYear().getMaximumValue()); } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.NO_ACCRUAL)) { nextAccrualIntervalDate = aDate; } return nextAccrualIntervalDate; }
From source file:org.kuali.kpme.tklm.leave.accrual.service.AccrualServiceImpl.java
License:Educational Community License
@Override public int getWorkDaysInAccrualInterval(String earnInterval, DateTime aDate) { if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.DAILY)) { return 1; } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.WEEKLY)) { return 5; } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.SEMI_MONTHLY)) { if (aDate.getDayOfMonth() <= 15) { return TKUtils.getWorkDays(aDate.withDayOfMonth(1), aDate.withDayOfMonth(15)); } else {//ww w. j av a 2 s. com return TKUtils.getWorkDays(aDate.withDayOfMonth(16), aDate.withDayOfMonth(aDate.dayOfMonth().getMaximumValue())); } } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.MONTHLY)) { return TKUtils.getWorkDays(aDate.withDayOfMonth(1), aDate.withDayOfMonth(aDate.dayOfMonth().getMaximumValue())); } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.YEARLY)) { return TKUtils.getWorkDays(aDate.withDayOfYear(1), aDate.withDayOfYear(aDate.dayOfYear().getMaximumValue())); } else if (earnInterval.equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.NO_ACCRUAL)) { return 0; } return 0; }
From source file:org.projectforge.business.teamcal.servlet.CalendarAboServlet.java
License:Open Source License
/** * builds the list of events/*from w ww. ja v a 2 s . c o m*/ * * @return */ private List<VEvent> getEvents(final Map<String, String> params, PFUserDO timesheetUser) { final PFUserDO loggedInUser = ThreadLocalUserContext.getUser(); if (loggedInUser == null) { throw new AccessException("No logged-in-user found!"); } final List<VEvent> events = new ArrayList<VEvent>(); final TimeZone timezone = ICal4JUtils.getUserTimeZone(); final java.util.Calendar cal = java.util.Calendar.getInstance(ThreadLocalUserContext.getTimeZone()); boolean eventsExist = false; final List<VEvent> list = teamCalCalendarFeedHook.getEvents(params, timezone); if (list != null && list.size() > 0) { events.addAll(list); eventsExist = true; } if (timesheetUser != null) { if (loggedInUser.getId().equals(timesheetUser.getId()) == false && isOtherUsersAllowed() == false) { // Only project managers, controllers and administrative staff is allowed to subscribe time-sheets of other users. log.warn("User tried to get time-sheets of other user: " + timesheetUser); timesheetUser = loggedInUser; } // initializes timesheet filter final TimesheetFilter filter = new TimesheetFilter(); filter.setUserId(timesheetUser.getId()); filter.setDeleted(false); filter.setStopTime(cal.getTime()); // calculates the offset of the calendar final int offset = cal.get(java.util.Calendar.MONTH) - CalendarFeedConst.PERIOD_IN_MONTHS; if (offset < 0) { setCalDate(cal, cal.get(java.util.Calendar.YEAR) - 1, 12 + offset); } else { setCalDate(cal, cal.get(java.util.Calendar.YEAR), offset); } filter.setStartTime(cal.getTime()); final List<TimesheetDO> timesheetList = timesheetDao.getList(filter); // iterate over all timesheets and adds each event to the calendar for (final TimesheetDO timesheet : timesheetList) { final String uid = TeamCalConfig.get().createTimesheetUid(timesheet.getId()); String summary; if (eventsExist == true) { summary = CalendarHelper.getTitle(timesheet) + " (ts)"; } else { summary = CalendarHelper.getTitle(timesheet); } final VEvent vEvent = ICal4JUtils.createVEvent(timesheet.getStartTime(), timesheet.getStopTime(), uid, summary); if (StringUtils.isNotBlank(timesheet.getDescription()) == true) { vEvent.getProperties().add(new Description(timesheet.getDescription())); } if (StringUtils.isNotBlank(timesheet.getLocation()) == true) { vEvent.getProperties().add(new Location(timesheet.getLocation())); } events.add(vEvent); } } final String holidays = params.get(CalendarFeedConst.PARAM_NAME_HOLIDAYS); if ("true".equals(holidays) == true) { DateTime holidaysFrom = new DateTime(ThreadLocalUserContext.getDateTimeZone()); holidaysFrom = holidaysFrom.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue() .minusYears(2); final DateTime holidayTo = holidaysFrom.plusYears(6); events.addAll(teamCalService.getConfiguredHolidaysAsVEvent(holidaysFrom, holidayTo)); } final String weeksOfYear = params.get(CalendarFeedConst.PARAM_NAME_WEEK_OF_YEARS); if ("true".equals(weeksOfYear) == true) { final DayHolder from = new DayHolder(); from.setBeginOfYear().add(java.util.Calendar.YEAR, -2).setBeginOfWeek(); final DayHolder to = new DayHolder(from); to.add(java.util.Calendar.YEAR, 6); final DayHolder current = new DayHolder(from); int paranoiaCounter = 0; do { final VEvent vEvent = ICal4JUtils.createVEvent(current.getDate(), current.getDate(), "pf-weekOfYear" + current.getYear() + "-" + paranoiaCounter, ThreadLocalUserContext.getLocalizedString("calendar.weekOfYearShortLabel") + " " + current.getWeekOfYear(), true); events.add(vEvent); current.add(java.util.Calendar.WEEK_OF_YEAR, 1); if (++paranoiaCounter > 500) { log.warn( "Dear developer, please have a look here, paranoiaCounter exceeded! Aborting calculation of weeks of year."); } } while (current.before(to) == true); } // Integer hrPlanningUserId = NumberHelper.parseInteger(params.get(PARAM_NAME_HR_PLANNING)); // if (hrPlanningUserId != null) { // if (loggedInUser.getId().equals(hrPlanningUserId) == false && isOtherUsersAllowed() == false) { // // Only project managers, controllers and administrative staff is allowed to subscribe time-sheets of other users. // log.warn("User tried to get time-sheets of other user: " + timesheetUser); // hrPlanningUserId = loggedInUser.getId(); // } // final HRPlanningDao hrPlanningDao = Registry.instance().getDao(HRPlanningDao.class); // final HRPlanningEventsProvider hrPlanningEventsProvider = new HRPlanningEventsProvider(new CalendarFilter().setShowPlanning(true) // .setTimesheetUserId(hrPlanningUserId), hrPlanningDao); // DateTime planningFrom = new DateTime(ThreadLocalUserContext.getDateTimeZone()); // planningFrom = planningFrom.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue().minusYears(1); // final DateTime planningTo = planningFrom.plusYears(4); // for (final Event event : hrPlanningEventsProvider.getEvents(planningFrom, planningTo)) { // final Date fromDate = event.getStart().toDate(); // final Date toDate = event.getEnd() != null ? event.getEnd().toDate() : fromDate; // final VEvent vEvent = ICal4JUtils.createVEvent(fromDate, toDate, "pf-hr-planning" + event.getId(), event.getTitle(), true); // events.add(vEvent); // } // } return events; }
From source file:org.projectforge.web.calendar.CalendarFeed.java
License:Open Source License
/** * builds the list of events/* w ww. ja v a2 s.c om*/ * * @return */ private List<VEvent> getEvents(final Map<String, String> params, PFUserDO timesheetUser) { final PFUserDO loggedInUser = PFUserContext.getUser(); if (loggedInUser == null) { throw new AccessException("No logged-in-user found!"); } final List<VEvent> events = new ArrayList<VEvent>(); final TimeZone timezone = ICal4JUtils.getUserTimeZone(); final java.util.Calendar cal = java.util.Calendar.getInstance(PFUserContext.getTimeZone()); boolean eventsExist = false; for (final CalendarFeedHook hook : feedHooks) { final List<VEvent> list = hook.getEvents(params, timezone); if (list != null && list.size() > 0) { events.addAll(list); eventsExist = true; } } if (timesheetUser != null) { if (loggedInUser.getId().equals(timesheetUser.getId()) == false && isOtherUsersAllowed() == false) { // Only project managers, controllers and administrative staff is allowed to subscribe time-sheets of other users. log.warn("User tried to get time-sheets of other user: " + timesheetUser); timesheetUser = loggedInUser; } // initializes timesheet filter final TimesheetFilter filter = new TimesheetFilter(); filter.setUserId(timesheetUser.getId()); filter.setDeleted(false); filter.setStopTime(cal.getTime()); // calculates the offset of the calendar final int offset = cal.get(java.util.Calendar.MONTH) - PERIOD_IN_MONTHS; if (offset < 0) { setCalDate(cal, cal.get(java.util.Calendar.YEAR) - 1, 12 + offset); } else { setCalDate(cal, cal.get(java.util.Calendar.YEAR), offset); } filter.setStartTime(cal.getTime()); final TimesheetDao timesheetDao = Registry.instance().getDao(TimesheetDao.class); final List<TimesheetDO> timesheetList = timesheetDao.getList(filter); // iterate over all timesheets and adds each event to the calendar for (final TimesheetDO timesheet : timesheetList) { final String uid = TeamCalConfig.get().createTimesheetUid(timesheet.getId()); String summary; if (eventsExist == true) { summary = TimesheetEventsProvider.getTitle(timesheet) + " (ts)"; } else { summary = TimesheetEventsProvider.getTitle(timesheet); } final VEvent vEvent = ICal4JUtils.createVEvent(timesheet.getStartTime(), timesheet.getStopTime(), uid, summary); if (StringUtils.isNotBlank(timesheet.getDescription()) == true) { vEvent.getProperties().add(new Description(timesheet.getDescription())); } if (StringUtils.isNotBlank(timesheet.getLocation()) == true) { vEvent.getProperties().add(new Location(timesheet.getLocation())); } events.add(vEvent); } } final String holidays = params.get(PARAM_NAME_HOLIDAYS); if ("true".equals(holidays) == true) { final HolidayEventsProvider holidaysEventsProvider = new HolidayEventsProvider(); DateTime holidaysFrom = new DateTime(PFUserContext.getDateTimeZone()); holidaysFrom = holidaysFrom.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue() .minusYears(2); final DateTime holidayTo = holidaysFrom.plusYears(6); for (final Event event : holidaysEventsProvider.getEvents(holidaysFrom, holidayTo)) { final Date fromDate = event.getStart().toDate(); final Date toDate = event.getEnd() != null ? event.getEnd().toDate() : fromDate; final VEvent vEvent = ICal4JUtils.createVEvent(fromDate, toDate, "pf-holiday" + event.getId(), event.getTitle(), true); events.add(vEvent); } } final String weeksOfYear = params.get(PARAM_NAME_WEEK_OF_YEARS); if ("true".equals(weeksOfYear) == true) { final DayHolder from = new DayHolder(); from.setBeginOfYear().add(java.util.Calendar.YEAR, -2).setBeginOfWeek(); final DayHolder to = new DayHolder(from); to.add(java.util.Calendar.YEAR, 6); final DayHolder current = new DayHolder(from); int paranoiaCounter = 0; do { final VEvent vEvent = ICal4JUtils.createVEvent(current.getDate(), current.getDate(), "pf-weekOfYear" + current.getYear() + "-" + paranoiaCounter, PFUserContext.getLocalizedString("calendar.weekOfYearShortLabel") + " " + current.getWeekOfYear(), true); events.add(vEvent); current.add(java.util.Calendar.WEEK_OF_YEAR, 1); if (++paranoiaCounter > 500) { log.warn( "Dear developer, please have a look here, paranoiaCounter exceeded! Aborting calculation of weeks of year."); } } while (current.before(to) == true); } // Integer hrPlanningUserId = NumberHelper.parseInteger(params.get(PARAM_NAME_HR_PLANNING)); // if (hrPlanningUserId != null) { // if (loggedInUser.getId().equals(hrPlanningUserId) == false && isOtherUsersAllowed() == false) { // // Only project managers, controllers and administrative staff is allowed to subscribe time-sheets of other users. // log.warn("User tried to get time-sheets of other user: " + timesheetUser); // hrPlanningUserId = loggedInUser.getId(); // } // final HRPlanningDao hrPlanningDao = Registry.instance().getDao(HRPlanningDao.class); // final HRPlanningEventsProvider hrPlanningEventsProvider = new HRPlanningEventsProvider(new CalendarFilter().setShowPlanning(true) // .setTimesheetUserId(hrPlanningUserId), hrPlanningDao); // DateTime planningFrom = new DateTime(PFUserContext.getDateTimeZone()); // planningFrom = planningFrom.dayOfYear().withMinimumValue().millisOfDay().withMinimumValue().minusYears(1); // final DateTime planningTo = planningFrom.plusYears(4); // for (final Event event : hrPlanningEventsProvider.getEvents(planningFrom, planningTo)) { // final Date fromDate = event.getStart().toDate(); // final Date toDate = event.getEnd() != null ? event.getEnd().toDate() : fromDate; // final VEvent vEvent = ICal4JUtils.createVEvent(fromDate, toDate, "pf-hr-planning" + event.getId(), event.getTitle(), true); // events.add(vEvent); // } // } return events; }
From source file:playground.johannes.gsv.synPop.invermo.SplitPlanTask.java
License:Open Source License
private void splitPlan(ProxyPlan plan, List<ProxyPlan> newPlans) { ProxyPlan subPlan = new ProxyPlan(); DateTime prev = getDate(plan.getLegs().get(0)); if (prev == null) { logger.warn("Cannot split plan. Neither start nor end time specified."); return;/*www . ja v a 2 s . com*/ } for (int i = 0; i < plan.getLegs().size(); i++) { ProxyObject leg = plan.getLegs().get(i); ProxyObject act = plan.getActivities().get(i); DateTime current = getDate(leg); if (current == null) { logger.warn("Cannot split plan. Neither start nor end time specified."); return; } int currentDays = current.dayOfYear().get() + (365 * current.year().get()); int prevDays = prev.dayOfYear().get() + (365 * prev.year().get()); int nights = currentDays - prevDays; // if (current.dayOfYear().get() != prev.dayOfYear().get()) { if (nights > 0) { subPlan.setAttribute(MIDKeys.JOURNEY_DAYS, String.valueOf(nights + 1)); subPlan.addActivity(act.clone()); newPlans.add(subPlan); subPlan = new ProxyPlan(); subPlan.addActivity(act.clone()); subPlan.addLeg(leg.clone()); } else { subPlan.setAttribute(MIDKeys.JOURNEY_DAYS, String.valueOf(nights + 1)); subPlan.addActivity(act.clone()); subPlan.addLeg(leg.clone()); } prev = current; } int size = plan.getActivities().size(); subPlan.addActivity(plan.getActivities().get(size - 1).clone()); newPlans.add(subPlan); }