PamUtils
Class PamCalendar

java.lang.Object
  extended by PamUtils.PamCalendar

public class PamCalendar
extends java.lang.Object

Author:
Doug Gillespie Date and time in Pamguard are critical. It's likely that we'll be taking time from the GPS in the longer term, so for now, make sure that all calendar functions come via this

Field Summary
private static java.lang.String[] dateFormats
           
private static long sessionStartTime
          Time that data processing started - can be set to a file time when files are being processed, otherwise it's just the current time.
private static boolean soundFile
          true if data are from a file based data source, false if the data are arriving in real time.
private static long soundFileTimeInMillis
          time from the start of the file to the currentmoment.
private static long viewEndTime
          When running in viewer mode, use the sessionStartTime and the viewEndtime to control the calendar.
private static long viewPosition
          view is controlled by a slider which sets the viewPositions which is the number of milliseconds from the sessionsStartTime.
 
Constructor Summary
PamCalendar()
           
 
Method Summary
static java.lang.String createFileName(long fileStartTime, java.lang.String prefix, java.lang.String fileType)
          Creates a file name containing the time and a user defined prefix and file end
static java.lang.String createFileName(long fileStartTime, java.lang.String directory, java.lang.String prefix, java.lang.String fileType)
           
static java.lang.String createFileName(java.lang.String directory, java.lang.String prefix, java.lang.String fileType)
           
static java.util.Date dateFromDateString(java.lang.String dateString)
          Read a date string and turn it into a Date
private static java.lang.String fileTimeString(long fileStartTime)
           
static java.lang.String formatDate(long timeInMillis)
          Format the data in the dd MMMM yyyy format
static java.lang.String formatDateTime(java.util.Date date)
           
static java.lang.String formatDateTime(long timeInMillis)
          Formats the time and data in a long format
static java.lang.String formatDateTime2(long timeInMillis)
          Formats the time and data in a long format but without the GMT label at the end.
static java.lang.String formatDBDateTime(long timeInMillis)
          Formats the date and time in the correct format for database output.
static java.lang.String formatDBDateTimeQueryString(long timeMillis)
           
static java.lang.String formatDuration(long timeInMillis)
           
static java.lang.String formatFileDate(long timeMillis)
          Format date in format "yyyyMMdd"
static java.lang.String formatFileDateTime(long timeMillis)
          Format date and time in format "yyyyMMdd_HHmmss"
static java.lang.String formatTime(long timeMillis)
          Format a time string in the format HH:MM:DD
static java.lang.String formatTime(long timeMillis, boolean showMillis)
          Format a time string optionally showing the milliseconds with a given precision
static java.util.Calendar getCalendarDate()
           
static java.lang.String getDate()
           
static long getSessionStartTime()
           
static long getTime()
           
static long getTimeInMillis()
          If files are being analysed, return the time based on the file position.
static java.sql.Timestamp getTimeStamp(long millis)
          Get a GMT timestamp for output to a database
static java.lang.String getUnpunctuatedDate()
           
static long getViewEndTime()
           
static long getViewPosition()
           
static boolean isSoundFile()
           
static long millisFromTimeStamp(java.sql.Timestamp timestamp)
          convert a time stamp read from a databae into milliseconds.
static long msFromDateString(java.lang.String dateString)
          Read a date string and turn it into a millisecond time.
static void setSessionStartTime(long sessionStartTime)
           
static void setSoundFile(boolean soundFile)
           
static void setSoundFileTimeInMillis(long soundFileTimeMillis)
           
static void setViewPosition(long viewPosition)
           
static void setViewTimes(long start, long end)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

soundFile

private static boolean soundFile
true if data are from a file based data source, false if the data are arriving in real time. If analysing file data, times are based on the file start time (if known) and the position of the read pointer within the file.


soundFileTimeInMillis

private static long soundFileTimeInMillis
time from the start of the file to the currentmoment. This is updated every time data re read from the file, so is accurate to about 1/10 second. For accurate timing within detectors, always try to use sample number and count samples from the start time for the detector.


sessionStartTime

private static long sessionStartTime
Time that data processing started - can be set to a file time when files are being processed, otherwise it's just the current time.


viewEndTime

private static long viewEndTime
When running in viewer mode, use the sessionStartTime and the viewEndtime to control the calendar.


viewPosition

private static long viewPosition
view is controlled by a slider which sets the viewPositions which is the number of milliseconds from the sessionsStartTime.


dateFormats

private static java.lang.String[] dateFormats
Constructor Detail

PamCalendar

public PamCalendar()
Method Detail

getTimeInMillis

public static long getTimeInMillis()
If files are being analysed, return the time based on the file position. Otherwise just take the normal system time.

Returns:
time in milliseconds

getTime

public static long getTime()

getDate

public static java.lang.String getDate()

getCalendarDate

public static java.util.Calendar getCalendarDate()

formatDateTime

public static java.lang.String formatDateTime(java.util.Date date)

formatDateTime

public static java.lang.String formatDateTime(long timeInMillis)
Formats the time and data in a long format

Parameters:
timeInMillis - time in milliseconds
Returns:
formated data and time

formatDateTime2

public static java.lang.String formatDateTime2(long timeInMillis)
Formats the time and data in a long format but without the GMT label at the end.

Parameters:
timeInMillis - time in milliseconds
Returns:
formated data and time

formatDBDateTime

public static java.lang.String formatDBDateTime(long timeInMillis)
Formats the date and time in the correct format for database output.

"yyyy-MM-dd HH:mm:ss"

Parameters:
timeInMillis - time in milliseconds
Returns:
formated data and time

formatDBDateTimeQueryString

public static java.lang.String formatDBDateTimeQueryString(long timeMillis)

formatTime

public static java.lang.String formatTime(long timeMillis)
Format a time string in the format HH:MM:DD

Parameters:
timeMillis - time in milliseconds
Returns:
formatted string

formatTime

public static java.lang.String formatTime(long timeMillis,
                                          boolean showMillis)
Format a time string optionally showing the milliseconds with a given precision

Parameters:
timeMillis - time in milliseconds
millisDigits - number of millsecond decimal places.
Returns:
formatted time string.

formatDuration

public static java.lang.String formatDuration(long timeInMillis)

formatDate

public static java.lang.String formatDate(long timeInMillis)
Format the data in the dd MMMM yyyy format

Parameters:
timeInMillis - time in milliseconds
Returns:
formatted string.

formatFileDate

public static java.lang.String formatFileDate(long timeMillis)
Format date in format "yyyyMMdd"

Parameters:
timeMillis -
Returns:

formatFileDateTime

public static java.lang.String formatFileDateTime(long timeMillis)
Format date and time in format "yyyyMMdd_HHmmss"

Parameters:
timeMillis -
Returns:

msFromDateString

public static long msFromDateString(java.lang.String dateString)
Read a date string and turn it into a millisecond time.

Parameters:
dateString -
Returns:
time in milliseconds

dateFromDateString

public static java.util.Date dateFromDateString(java.lang.String dateString)
Read a date string and turn it into a Date

Parameters:
dateString -
Returns:
time as a Date object

isSoundFile

public static boolean isSoundFile()

setSoundFile

public static void setSoundFile(boolean soundFile)

getSessionStartTime

public static long getSessionStartTime()

setSessionStartTime

public static void setSessionStartTime(long sessionStartTime)

setSoundFileTimeInMillis

public static void setSoundFileTimeInMillis(long soundFileTimeMillis)

createFileName

public static java.lang.String createFileName(long fileStartTime,
                                              java.lang.String directory,
                                              java.lang.String prefix,
                                              java.lang.String fileType)

createFileName

public static java.lang.String createFileName(java.lang.String directory,
                                              java.lang.String prefix,
                                              java.lang.String fileType)

createFileName

public static java.lang.String createFileName(long fileStartTime,
                                              java.lang.String prefix,
                                              java.lang.String fileType)
Creates a file name containing the time and a user defined prefix and file end

Parameters:
fileStartTime - time
prefix - prefix for file name
fileType - file type (with or without the '.')
Returns:
file name

fileTimeString

private static java.lang.String fileTimeString(long fileStartTime)

getUnpunctuatedDate

public static java.lang.String getUnpunctuatedDate()

getTimeStamp

public static java.sql.Timestamp getTimeStamp(long millis)
Get a GMT timestamp for output to a database

Parameters:
millis - time in milliseconds
Returns:
GMT timestamp

millisFromTimeStamp

public static long millisFromTimeStamp(java.sql.Timestamp timestamp)
convert a time stamp read from a databae into milliseconds.

Parameters:
timestamp - GMT timestamp
Returns:
time in milliseconds.

setViewTimes

public static void setViewTimes(long start,
                                long end)

getViewEndTime

public static long getViewEndTime()

getViewPosition

public static long getViewPosition()

setViewPosition

public static void setViewPosition(long viewPosition)