class IMSTimePoint implements Comparable<IMSTimePoint> {

    public static IMSTimePoint incrementHour(IMSTimePoint imsTimePoint)
    {

        IMSTimePoint localIMSTimePoint = imsTimePoint;

        if (localIMSTimePoint.hourIndex < 23 && localIMSTimePoint.hourIndex > 0)
        {
            ++localIMSTimePoint.hourIndex;
        }
        else
        {
            DateFormat format = new SimpleDateFormat(DATE_FORMAT);
            LocalDateTime dtOrg, dtPlusOne = null;
            DateTimeFormatter outputFormat = null;
            Date localDate;

            try
            {
                localDate = format.parse(imsTimePoint.getDate());
                dtOrg = LocalDateTime.ofInstant(localDate.toInstant(), ZoneId.systemDefault());
                dtPlusOne = dtOrg.plusDays(1);
                outputFormat = DateTimeFormatter.ofPattern(DATE_FORMAT);
                outputFormat.format(dtPlusOne);

            }
            catch (ParseException e)
            {
                LOGGER.error(e.getMessage());
            }

            localIMSTimePoint.setHourIndex(0);
            if (outputFormat != null)
            {
                localIMSTimePoint.setDate(outputFormat.format(dtPlusOne));
            }
        }

        return localIMSTimePoint;
    }

    public  IMSTimePoint(long epochTime);

}