de.inovat.kex.bast.common
Class IntervalHelper

java.lang.Object
  extended by de.inovat.kex.bast.common.IntervalHelper

public abstract class IntervalHelper
extends java.lang.Object

Klasse die statische Methoden zum Arbeiten mit Intervallen liefert.

Version:
$Id: IntervalHelper.java 442 2008-11-10 06:59:32Z Schawaller $
Author:
LOGOS GmbH Rostock (www.logos-ib.de), Ralf Trier

Field Summary
static long MINUTE_IN_MS
           
static long SEKUNDE_IN_MS
           
static long STUNDE_IN_MS
           
static long TAG_IN_MS
           
 
Method Summary
static int getAnzahlIntervalle(IntervalType intervalType, java.util.Calendar from, java.util.Calendar to)
          Berechnung die Anzahl Intervalle zwischen zwei Datum/Zeitangaben auf Basis der durch die Intervallart vorgegebenen Intervalllänge.
static int getAnzahlIntervalle(long from, long to, IntervalType intervalType)
          Berechnung die Anzahl Intervalle zwischen zwei Datum/Zeitangaben auf Basis der durch die Intervallart vorgegebenen Intervalllänge.
static java.util.Calendar getIntervalBegin(IntervalType intervalType, java.util.Calendar cal)
          Liefert den Anfangszeitpunkt des Intervalles, in das der angegebene Zeitpunkt fällt.
static java.util.Date getIntervalBegin(IntervalType intervalType, java.util.Date date)
          Liefert den Anfangszeitpunkt des Intervalles, in das der angegebene Zeitpunkt fällt.
static long getIntervalBegin(IntervalType intervalType, long time)
          Liefert den Anfangszeitpunkt des Intervalles, in das der angegebene Zeitpunkt fällt.
static java.util.Calendar getNextIntervalBegin(IntervalType intervall, java.util.Calendar cal)
          Berechnung des nächstfolgenden Intervallanfangs auf Basis des angegebenen Datums und der durch die Intervallart vorgegebenen Intervalllänge.
static java.util.Calendar getNextIntervalBegin(IntervalType intervalType, java.util.Calendar cal, int cnt)
          Berechnung des nächstfolgenden Intervallanfangs auf Basis des angegebenen Datums und der durch die Intervallart vorgegebenen Intervalllänge.
static long getNextIntervalBegin(IntervalType intervalType, long time)
          Berechnung des nächstfolgenden Intervallanfangs auf Basis des angegebenen Datums und der durch die Intervallart vorgegebenen Intervalllänge.
static long getNextIntervalBegin(IntervalType intervalType, long time, int cnt)
          Berechnung des nächstfolgenden Intervallanfangs auf Basis des angegebenen Datums und der durch die Intervallart vorgegebenen Intervalllänge sowie anzahl Intervalle.
static boolean isValid(IntervalType intervalType, long time)
          Bestimmt, ob die übergebene Zeit gültig für den angegebenen IntervallTyp ist.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TAG_IN_MS

public static final long TAG_IN_MS
See Also:
Constant Field Values

STUNDE_IN_MS

public static final long STUNDE_IN_MS
See Also:
Constant Field Values

MINUTE_IN_MS

public static final long MINUTE_IN_MS
See Also:
Constant Field Values

SEKUNDE_IN_MS

public static final long SEKUNDE_IN_MS
See Also:
Constant Field Values
Method Detail

isValid

public static boolean isValid(IntervalType intervalType,
                              long time)

Bestimmt, ob die übergebene Zeit gültig für den angegebenen IntervallTyp ist.

Parameters:
intervalType - IntervalType
time - long
Returns:
boolean

getIntervalBegin

public static java.util.Calendar getIntervalBegin(IntervalType intervalType,
                                                  java.util.Calendar cal)

Liefert den Anfangszeitpunkt des Intervalles, in das der angegebene Zeitpunkt fällt.

Parameters:
intervalType - IntervalType
cal - Calendar zu rundende Datum/Zeitangabe
Returns:
Calendar auf Intervallanfang gerundete Datum/Zeitangabe

getIntervalBegin

public static java.util.Date getIntervalBegin(IntervalType intervalType,
                                              java.util.Date date)

Liefert den Anfangszeitpunkt des Intervalles, in das der angegebene Zeitpunkt fällt.

Parameters:
intervalType - IntervalType
date - Date zu rundendes Datum
Returns:
Date auf Intervallanfang gerundete Datum/Zeitangabe

getIntervalBegin

public static long getIntervalBegin(IntervalType intervalType,
                                    long time)

Liefert den Anfangszeitpunkt des Intervalles, in das der angegebene Zeitpunkt fällt.

Parameters:
intervalType - IntervalType
time - long zu rundendes Datum als UTC Angabe in ms
Returns:
long auf Intervallanfang gerundete Datum/Zeitangabe

getNextIntervalBegin

public static java.util.Calendar getNextIntervalBegin(IntervalType intervalType,
                                                      java.util.Calendar cal,
                                                      int cnt)

Berechnung des nächstfolgenden Intervallanfangs auf Basis des angegebenen Datums und der durch die Intervallart vorgegebenen Intervalllänge.

Zur Berechnung wird die Intervalllänge korrekt dazugerechnet und anschließend auf den Intervallbeginn gerundet. Um bei Intervallart Stunde auch zum Zeitpunkt der Sommerzeitumstellung korrekte Werte zu erhalten wird direkt über die Millisekunden gearbeitet. Ansonsten wird der Wechsel über die Intervallgrenzen mit Hilfe der Kalenderfunktionen korrekt ermittelt: bei Intervallart Calendar.MONTH und Date = 2004-02-01 00°° wird das nächste Intervall korrekt mit 2004-03-01 00°° berechnet.

Parameters:
intervalType - IntervalType Intervallart/-länge
cal - Calendar Ausgangsdatum
cnt - int Anzahl Intervalle
Returns:
Calendar Intervallbeginn des Folgeintervalls

getNextIntervalBegin

public static java.util.Calendar getNextIntervalBegin(IntervalType intervall,
                                                      java.util.Calendar cal)

Berechnung des nächstfolgenden Intervallanfangs auf Basis des angegebenen Datums und der durch die Intervallart vorgegebenen Intervalllänge.

Parameters:
intervall - Intervallart/-länge
cal - Ausgangsdatum
Returns:
Intervallbeginn des Folgeintervalls

getNextIntervalBegin

public static long getNextIntervalBegin(IntervalType intervalType,
                                        long time,
                                        int cnt)

Berechnung des nächstfolgenden Intervallanfangs auf Basis des angegebenen Datums und der durch die Intervallart vorgegebenen Intervalllänge sowie anzahl Intervalle.

Parameters:
intervalType - IntervalType Intervallart/-länge
time - Ausgangsdatum
cnt - int anzahl Intervalle
Returns:
Calendar Intervallbeginn des Folgeintervalls

getNextIntervalBegin

public static long getNextIntervalBegin(IntervalType intervalType,
                                        long time)

Berechnung des nächstfolgenden Intervallanfangs auf Basis des angegebenen Datums und der durch die Intervallart vorgegebenen Intervalllänge.

Parameters:
time - long Ausgangsdatum
intervalType - IntervalType Intervallart/-länge
Returns:
long Intervallbeginn des Folgeintervalls

getAnzahlIntervalle

public static int getAnzahlIntervalle(IntervalType intervalType,
                                      java.util.Calendar from,
                                      java.util.Calendar to)

Berechnung die Anzahl Intervalle zwischen zwei Datum/Zeitangaben auf Basis der durch die Intervallart vorgegebenen Intervalllänge.

Parameters:
from - Calendar Ausgangsdatum (von)
to - Calendar Ausgangsdatum (bis)
intervalType - IntervalType Intervallart/-länge
Returns:
Calendar Intervallbeginn des Folgeintervalls

getAnzahlIntervalle

public static int getAnzahlIntervalle(long from,
                                      long to,
                                      IntervalType intervalType)

Berechnung die Anzahl Intervalle zwischen zwei Datum/Zeitangaben auf Basis der durch die Intervallart vorgegebenen Intervalllänge.

Parameters:
from - long Ausgangsdatum (von), (Calendar.getTimeInMillis())
to - long Ausgangsdatum (bis), (Calendar.getTimeInMillis())
intervalType - IntervalType Intervallart/-länge
Returns:
Calendar Intervallbeginn des Folgeintervalls