Example usage for org.joda.time DateTime DateTime

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

Introduction

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

Prototype

public DateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour,
        int secondOfMinute) 

Source Link

Document

Constructs an instance from datetime field values using ISOChronology in the default time zone.

Usage

From source file:aplicacion.control.util.Fecha.java

public Date getDate() {
    DateTime dateTime = new DateTime(getAnoInt(), getMesInt(), getDiaInt(), 0, 0, 0);
    //dateTime = dateTime.withYear(getAnoInt());
    //dateTime = dateTime.withMonthOfYear(getMesInt());
    //dateTime = dateTime.withDayOfMonth(getDiaInt());
    return new Date(dateTime.getMillis());
}

From source file:br.com.fidias.chance4j.Chance.java

License:Open Source License

/**
 * Generate a random datetime, limited to a year.
 *
 * @param year Year of the date//from  ww  w.  jav a  2  s.c o  m
 * @param hour Hour of the date
 * @param minute Minute of the date
 * @return A random date with time
 * @throws ChanceException
 */
private DateTime dateTime(int year, int hour, int minute, int second) throws ChanceException {
    int month = month();
    // https://github.com/JodaOrg/joda-time/issues/22
    int maximumValue;
    if (month == DateTimeConstants.FEBRUARY) {
        maximumValue = 28;
    } else {
        MonthDay monthDay = new MonthDay(month, 1);
        maximumValue = monthDay.dayOfMonth().getMaximumValue();
    }

    int day = natural(1, maximumValue);
    return new DateTime(year, month, day, hour, minute, second);
}

From source file:cd.education.data.collector.android.widgets.DateTimeWidget.java

License:Apache License

@Override
public IAnswerData getAnswer() {
    if (showCalendar) {
        scrollView.clearChildFocus(mDatePicker);
    }//w  w w  .j  a  v a2 s . c o  m
    clearFocus();
    DateTime ldt = new DateTime(mDatePicker.getYear(), mDatePicker.getMonth() + 1, mDatePicker.getDayOfMonth(),
            mTimePicker.getCurrentHour(), mTimePicker.getCurrentMinute(), 0);
    //DateTime utc = ldt.withZone(DateTimeZone.forID("UTC"));
    return new DateTimeData(ldt.toDate());
}

From source file:com.aionemu.gameserver.dataholders.InstanceCooltimeData.java

License:Open Source License

public long getInstanceEntranceCooltime(Player player, int worldId) {
    int instanceCooldownRate = InstanceService.getInstanceRate(player, worldId);
    long instanceCoolTime = 0;
    InstanceCooltime clt = getInstanceCooltimeByWorldId(worldId);
    if (clt != null) {
        instanceCoolTime = clt.getEntCoolTime();
        if (clt.getCoolTimeType().isDaily()) {
            DateTime now = DateTime.now();
            DateTime repeatDate = new DateTime(now.getYear(), now.getMonthOfYear(), now.getDayOfMonth(),
                    (int) (instanceCoolTime / 100), 0, 0);
            if (now.isAfter(repeatDate)) {
                repeatDate = repeatDate.plusHours(24);
                instanceCoolTime = repeatDate.getMillis();
            } else {
                instanceCoolTime = repeatDate.getMillis();
            }/*from  w w w .jav  a 2  s .  co m*/
        } else if (clt.getCoolTimeType().isWeekly()) {
            String[] days = clt.getTypeValue().split(",");
            instanceCoolTime = getUpdateHours(days, (int) (instanceCoolTime / 100));
        } else {
            instanceCoolTime = System.currentTimeMillis() + (instanceCoolTime * 60 * 1000);
        }
    }
    if (instanceCooldownRate != 1) {
        instanceCoolTime = System.currentTimeMillis()
                + ((instanceCoolTime - System.currentTimeMillis()) / instanceCooldownRate);
    }
    return instanceCoolTime;
}

From source file:com.aionemu.gameserver.dataholders.InstanceCooltimeData.java

License:Open Source License

private long getUpdateHours(String[] days, int hour) {
    DateTime now = DateTime.now();// w  ww. jav a  2 s  . c  o m
    DateTime repeatDate = new DateTime(now.getYear(), now.getMonthOfYear(), now.getDayOfMonth(), hour, 0, 0);
    int curentDay = now.getDayOfWeek();
    for (String name : days) {
        int day = getDay(name);
        if (day < curentDay) {
            continue;
        }
        if (day == curentDay) {
            if (now.isBefore(repeatDate)) {
                return repeatDate.getMillis();
            }
        } else {
            repeatDate = repeatDate.plusDays(day - curentDay);
            return repeatDate.getMillis();
        }
    }
    return repeatDate.plusDays((7 - curentDay) + getDay(days[0])).getMillis();
}

From source file:com.aionemu.gameserver.model.gameobjects.UseableItemObject.java

License:Open Source License

@Override
public void onUse(final Player player) {
    if (!usingPlayer.compareAndSet(null, player)) {
        // The same player is using, return. It might be double-click
        if (usingPlayer.compareAndSet(player, player)) {
            return;
        }/*from  w w  w.j  a v  a  2  s.co  m*/
        PacketSendUtility.sendPacket(player, SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_OBJECT_OCCUPIED_BY_OTHER);
        return;
    }

    boolean isOwner = getOwnerHouse().getOwnerId() == player.getObjectId();
    if (getObjectTemplate().isOwnerOnly() && !isOwner) {
        warnAndRelease(player, SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_OBJECT_IS_ONLY_FOR_OWNER_VALID);
        return;
    }

    boolean cdExpired = player.getHouseObjectCooldownList().isCanUseObject(getObjectId());
    if (!cdExpired) {
        if (getObjectTemplate().getCd() != null && getObjectTemplate().getCd() != 0) {
            warnAndRelease(player, SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_CANNOT_USE_FLOWERPOT_COOLTIME);
            return;
        }
        if (getObjectTemplate().isOwnerOnly() && isOwner) {
            warnAndRelease(player, SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_OBJECT_CANT_USE_PER_DAY);
            return;
        }
    }

    final UseItemAction action = getObjectTemplate().getAction();
    if (action == null) {
        // Some objects do not have actions; they are test items now
        warnAndRelease(player, SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_OBJECT_ALL_CANT_USE);
        return;
    }

    if (getObjectTemplate().getPlacementLimit() == LimitType.COOKING) {
        // Check if player already has an item
        if (player.getInventory().getItemCountByItemId(action.getRewardId()) > 0) {
            int nameId = DataManager.ITEM_DATA.getItemTemplate(action.getRewardId()).getNameId();
            SM_SYSTEM_MESSAGE msg = SM_SYSTEM_MESSAGE.STR_MSG_CANNOT_USE_ALREADY_HAVE_REWARD_ITEM(nameId,
                    getObjectTemplate().getNameId());
            warnAndRelease(player, msg);
            return;
        }
    }

    final Integer useCount = getObjectTemplate().getUseCount();
    int currentUseCount = 0;

    if (useCount != null) {
        // Counter is for both, but could be made custom from configs
        currentUseCount = getOwnerUsedCount() + getVisitorUsedCount();
        if (currentUseCount >= useCount && !isOwner || currentUseCount > useCount && isOwner) {
            // if expiration is set then final reward has to be given for owner only
            // due to inventory full. If inventory was not full, the object had to be despawned, so
            // we wouldn't reach this check.
            if (!mustGiveLastReward || !isOwner) {
                warnAndRelease(player, SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_OBJECT_ACHIEVE_USE_COUNT);
                return;
            }
        }
    }

    final Integer requiredItem = getObjectTemplate().getRequiredItem();

    if (mustGiveLastReward && !isOwner) {
        // Expired, waiting owner
        int descId = DataManager.ITEM_DATA.getItemTemplate(requiredItem).getNameId();
        warnAndRelease(player, SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_OBJECT_DELETE_EXPIRE_TIME(descId));
        return;
    } else if (requiredItem != null) {
        int checkType = action.getCheckType();
        if (checkType == 1) { // equip item needed
            List<Item> items = player.getEquipment().getEquippedItemsByItemId(requiredItem);
            if (items.size() == 0) {
                int descId = DataManager.ITEM_DATA.getItemTemplate(requiredItem).getNameId();
                warnAndRelease(player,
                        SM_SYSTEM_MESSAGE.STR_MSG_CANT_USE_HOUSE_OBJECT_ITEM_EQUIP(new DescriptionId(descId)));
                return;
            }
        } else if (player.getInventory().getItemCountByItemId(requiredItem) < action.getRemoveCount()) {
            int descId = DataManager.ITEM_DATA.getItemTemplate(requiredItem).getNameId();
            warnAndRelease(player,
                    SM_SYSTEM_MESSAGE.STR_MSG_CANT_USE_HOUSE_OBJECT_ITEM_CHECK(new DescriptionId(descId)));
            return;
        }
    }

    if (player.getInventory().isFull()) {
        warnAndRelease(player, SM_SYSTEM_MESSAGE.STR_WAREHOUSE_TOO_MANY_ITEMS_INVENTORY);
        return;
    }

    final int delay = getObjectTemplate().getDelay();
    final int ownerId = getOwnerHouse().getOwnerId();
    final int usedCount = useCount == null ? 0 : currentUseCount + 1;
    final ItemUseObserver observer = new ItemUseObserver() {
        @Override
        public void abort() {
            PacketSendUtility.sendPacket(player, new SM_USE_OBJECT(player.getObjectId(), getObjectId(), 0, 9));
            player.getObserveController().removeObserver(this);
            warnAndRelease(player, null);
        }

        @Override
        public void itemused(Item item) {
            abort();
        }
    };

    player.getObserveController().attach(observer);
    PacketSendUtility.sendPacket(player,
            SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_OBJECT_USE(getObjectTemplate().getNameId()));
    PacketSendUtility.sendPacket(player, new SM_USE_OBJECT(player.getObjectId(), getObjectId(), delay, 8));
    player.getController().addTask(TaskId.HOUSE_OBJECT_USE,
            ThreadPoolManager.getInstance().schedule(new Runnable() {
                @Override
                public void run() {
                    try {
                        PacketSendUtility.sendPacket(player,
                                new SM_USE_OBJECT(player.getObjectId(), getObjectId(), 0, 9));
                        if (action.getRemoveCount() != null && action.getRemoveCount() != 0) {
                            player.getInventory().decreaseByItemId(requiredItem, action.getRemoveCount());
                        }

                        UseableItemObject myself = UseableItemObject.this;
                        int rewardId = 0;
                        boolean delete = false;

                        if (useCount != null) {
                            if (action.getFinalRewardId() != null && useCount + 1 == usedCount) {
                                // visitors do not get final rewards
                                rewardId = action.getFinalRewardId();
                                ItemService.addItem(player, rewardId, 1);
                                delete = true;
                            } else if (action.getRewardId() != null) {
                                rewardId = action.getRewardId();
                                ItemService.addItem(player, rewardId, 1);
                                if (useCount == usedCount) {
                                    PacketSendUtility.sendPacket(player,
                                            SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_FLOWERPOT_GOAL(
                                                    myself.getObjectTemplate().getNameId()));
                                    if (action.getFinalRewardId() == null) {
                                        delete = true;
                                    } else {
                                        myself.setMustGiveLastReward(true);
                                        myself.setExpireTime((int) (System.currentTimeMillis() / 1000));
                                        myself.setPersistentState(PersistentState.UPDATE_REQUIRED);
                                    }
                                }
                            }
                        } else if (action.getRewardId() != null) {
                            rewardId = action.getRewardId();
                            ItemService.addItem(player, rewardId, 1);
                        }
                        if (usedCount > 0) {
                            if (!delete) {
                                if (player.getObjectId() == ownerId) {
                                    myself.incrementOwnerUsedCount();
                                } else {
                                    myself.incrementVisitorUsedCount();
                                }
                            }
                            PacketSendUtility.broadcastPacket(player,
                                    new SM_OBJECT_USE_UPDATE(player.getObjectId(), ownerId, usedCount, myself),
                                    true);
                        }
                        if (rewardId > 0) {
                            int rewardNameId = DataManager.ITEM_DATA.getItemTemplate(rewardId).getNameId();
                            PacketSendUtility.sendPacket(player,
                                    SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_OBJECT_REWARD_ITEM(
                                            myself.getObjectTemplate().getNameId(), rewardNameId));
                        }
                        if (delete) {
                            selfDestroy(player, SM_SYSTEM_MESSAGE.STR_MSG_HOUSING_OBJECT_DELETE_USE_COUNT_FINAL(
                                    getObjectTemplate().getNameId()));
                        } else {
                            Integer cd = myself.getObjectTemplate().getCd();
                            DateTime repeatDate;
                            if (cd == null || cd == 0) {
                                // use once per day
                                DateTime tomorrow = DateTime.now().plusDays(1);
                                repeatDate = new DateTime(tomorrow.getYear(), tomorrow.getMonthOfYear(),
                                        tomorrow.getDayOfMonth(), 0, 0, 0);
                                cd = (int) (repeatDate.getMillis() - DateTime.now().getMillis()) / 1000;
                            }
                            player.getHouseObjectCooldownList().addHouseObjectCooldown(myself.getObjectId(),
                                    cd);
                        }
                    } finally {
                        player.getObserveController().removeObserver(observer);
                        warnAndRelease(player, null);
                    }
                }
            }, delay));
}

From source file:com.aionemu.gameserver.services.LoginEventService.java

License:Open Source License

private static Timestamp autoAddTimeColumn() {
    DateTime now = DateTime.now();/* w  w w  .ja  v  a2s  .  c o m*/
    DateTime repeatDate = new DateTime(now.getYear(), now.getMonthOfYear(), now.getDayOfMonth(), 9, 0, 0);
    if (now.isAfter(repeatDate)) {
        repeatDate = repeatDate.plusHours(24);
    }
    return new Timestamp(repeatDate.getMillis());
}

From source file:com.aionemu.gameserver.services.LoginEventService.java

License:Open Source License

private static Timestamp countNextRepeatTime() {
    DateTime now = DateTime.now();/*  www  . ja v a  2 s. co m*/
    DateTime repeatDate = new DateTime(now.getYear(), now.getMonthOfYear(), now.getDayOfMonth(), 9, 0, 0);
    if (now.isAfter(repeatDate)) {
        repeatDate = repeatDate.plusHours(24);
    }
    return new Timestamp(repeatDate.getMillis());
}

From source file:com.aionemu.gameserver.services.QuestService.java

License:Open Source License

private static Timestamp countNextRepeatTime(Player player, QuestTemplate template) {
    DateTime now = DateTime.now();//from  w  w w . j av a2  s.  c o m
    DateTime repeatDate = new DateTime(now.getYear(), now.getMonthOfYear(), now.getDayOfMonth(), 9, 0, 0);
    if (template.isDaily()) {
        if (now.isAfter(repeatDate)) {
            repeatDate = repeatDate.plusHours(24);
        }
        PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1400855, "9"));
    } else {
        int daysToAdd = 7;
        int startDay = 7;
        for (QuestRepeatCycle weekDay : template.getRepeatCycle()) {
            int diff = weekDay.getDay() - repeatDate.getDayOfWeek();
            if (diff > 0 && diff < daysToAdd) {
                daysToAdd = diff;
            }
            if (startDay > weekDay.getDay()) {
                startDay = weekDay.getDay();
            }
        }
        if (startDay == daysToAdd) {
            daysToAdd = 7;
        } else if (daysToAdd == 7 && startDay < 7) {
            daysToAdd = 7 - repeatDate.getDayOfWeek() + startDay;
        }
        repeatDate = repeatDate.plusDays(daysToAdd);
        PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1400857, new DescriptionId(1800667), "9"));
    }
    return new Timestamp(repeatDate.getMillis());
}