Search in sources :

Example 6 with LocalDateTimeValue

use of org.knime.core.data.time.localdatetime.LocalDateTimeValue in project knime-core by knime.

the class LocalDateTimeMedianOperator method createCustomMeanMedianMetod.

private static EvenListMedianMethod createCustomMeanMedianMetod() {
    return new EvenListMedianMethod() {

        @Override
        public DataCell extractMedian(final List<DataCell> cells, final int lowerCandidateIdx, final int upperCandidateIdx) {
            final LocalDateTime dateTime1 = ((LocalDateTimeValue) cells.get(lowerCandidateIdx)).getLocalDateTime();
            final LocalDateTime dateTime2 = ((LocalDateTimeValue) cells.get(upperCandidateIdx)).getLocalDateTime();
            // calculate mean (seconds), keep decimals for further calculations
            final double meanTimestampSeconds = (dateTime1.toEpochSecond(ZoneOffset.UTC) + dateTime2.toEpochSecond(ZoneOffset.UTC)) / 2.0;
            // calculate mean (nanos), round fraction of nano
            final int meanTimestampNanos = (int) (meanTimestampSeconds - (long) meanTimestampSeconds + (dateTime1.getNano() + dateTime2.getNano()) / 2.0 + 0.5);
            final LocalDateTime meanDateTime = LocalDateTime.ofEpochSecond((long) meanTimestampSeconds, meanTimestampNanos, ZoneOffset.UTC);
            return LocalDateTimeCellFactory.create(meanDateTime);
        }
    };
}
Also used : LocalDateTime(java.time.LocalDateTime) List(java.util.List) LocalDateTimeValue(org.knime.core.data.time.localdatetime.LocalDateTimeValue)

Aggregations

LocalDateTimeValue (org.knime.core.data.time.localdatetime.LocalDateTimeValue)6 LocalTimeValue (org.knime.core.data.time.localtime.LocalTimeValue)4 ZonedDateTimeValue (org.knime.core.data.time.zoneddatetime.ZonedDateTimeValue)4 DataCell (org.knime.core.data.DataCell)3 LocalDateValue (org.knime.core.data.time.localdate.LocalDateValue)3 LocalDateTime (java.time.LocalDateTime)2 ZonedDateTime (java.time.ZonedDateTime)2 DataRow (org.knime.core.data.DataRow)2 DataType (org.knime.core.data.DataType)2 Duration (java.time.Duration)1 Temporal (java.time.temporal.Temporal)1 List (java.util.List)1 Locale (java.util.Locale)1 DataColumnDomainCreator (org.knime.core.data.DataColumnDomainCreator)1 DataColumnSpec (org.knime.core.data.DataColumnSpec)1 MissingCell (org.knime.core.data.MissingCell)1 ColumnRearranger (org.knime.core.data.container.ColumnRearranger)1 BufferedDataContainer (org.knime.core.node.BufferedDataContainer)1 BufferedDataTable (org.knime.core.node.BufferedDataTable)1 ExecutionContext (org.knime.core.node.ExecutionContext)1