DCL 3.7.4
Loading...
Searching...
No Matches
Time Class Reference

#include <DateTime.h>

Public Member Functions

 Time ()
 Time (const Time &_src)
 Time (int _hour, int _min, int _sec, int _millisecond=0)
 Time (long _milliseconds)
void assign (int _hour, int _min, int _sec, int _millisecond=0)
void assign (long _milliseconds)
const Timeoperator= (const Time &_src)
const Timeoperator+= (long _milliseconds)
const Timeoperator-= (long _milliseconds)
void decode (int &_hour, int &_min, int &_sec, int &_millisecond) const
int hour () const
int minute () const
int second () const
int msecond () const
String toString () const
String toStringF (const wchar_t *_format=NULL)
long totalMilliSeconds () const

Static Public Member Functions

static bool isValid (int _hour, int _min, int _sec, int _millisecond)

Static Public Attributes

static const wchar_t * FORMAT_STRING = L"%H:%M:%S"

Protected Attributes

unsigned long __milliseconds

Detailed Description

Definition at line 101 of file DateTime.h.

Constructor & Destructor Documentation

◆ Time() [1/4]

Time::Time ( )

Definition at line 385 of file DateTime.cpp.

386{
387 __milliseconds = 0;
388}
unsigned long __milliseconds
Definition DateTime.h:136

◆ Time() [2/4]

Time::Time ( const Time & _src)

Definition at line 390 of file DateTime.cpp.

391{
393}

◆ Time() [3/4]

Time::Time ( int _hour,
int _min,
int _sec,
int _millisecond = 0 )

Definition at line 402 of file DateTime.cpp.

403{
404 assign(_hour, _min, _sec, _millisecond);
405}
void assign(int _hour, int _min, int _sec, int _millisecond=0)
Definition DateTime.cpp:412

◆ Time() [4/4]

Time::Time ( long _milliseconds)

Definition at line 407 of file DateTime.cpp.

408{
409 assign(_milliseconds);
410}

Member Function Documentation

◆ assign() [1/2]

void Time::assign ( int _hour,
int _min,
int _sec,
int _millisecond = 0 )

Definition at line 412 of file DateTime.cpp.

413{
414 long msec = _hour * MSEC_PER_HOUR
415 + _min * MSEC_PER_MIN
416 + _sec * 1000
417 + _millisecond;
418
419 msec %= MSEC_PER_DAY;
420 msec += MSEC_PER_DAY;
422}
#define MSEC_PER_HOUR
Definition DateTime.cpp:398
#define MSEC_PER_DAY
Definition DateTime.cpp:396
#define MSEC_PER_MIN
Definition DateTime.cpp:400

◆ assign() [2/2]

void Time::assign ( long _milliseconds)

Definition at line 424 of file DateTime.cpp.

425{
426 _milliseconds %= MSEC_PER_DAY;
427 _milliseconds += MSEC_PER_DAY;
428 __milliseconds = _milliseconds % MSEC_PER_DAY;
429}

◆ decode()

void Time::decode ( int & _hour,
int & _min,
int & _sec,
int & _millisecond ) const

Definition at line 464 of file DateTime.cpp.

465{
468 _sec = (__milliseconds % MSEC_PER_MIN) / 1000;
469 _millisecond = __milliseconds % 1000;
470}

◆ hour()

int Time::hour ( ) const

Definition at line 472 of file DateTime.cpp.

473{
475}

◆ isValid()

bool Time::isValid ( int _hour,
int _min,
int _sec,
int _millisecond )
static

Definition at line 531 of file DateTime.cpp.

532{
533 return (0 <= _hour && _hour <= 23)
534 && (0 <= _min && _min <= 59)
535 && (0 <= _sec && _sec <= 59)
536 && (0 <= _millisecond && _millisecond <= 999);
537}

◆ minute()

int Time::minute ( ) const

Definition at line 477 of file DateTime.cpp.

478{
480}

◆ msecond()

int Time::msecond ( ) const

Definition at line 487 of file DateTime.cpp.

488{
489 return __milliseconds % 1000;
490}

◆ operator+=()

const Time & Time::operator+= ( long _milliseconds)

Definition at line 437 of file DateTime.cpp.

438{
439 long msec = __milliseconds + _milliseconds;
440 msec %= MSEC_PER_DAY;
441 msec += MSEC_PER_DAY;
443
444 return *this;
445}

◆ operator-=()

const Time & Time::operator-= ( long _milliseconds)

Definition at line 447 of file DateTime.cpp.

448{
449 long msec = __milliseconds - _milliseconds;
450 msec %= MSEC_PER_DAY;
451 msec += MSEC_PER_DAY;
453
454 return *this;
455}

◆ operator=()

const Time & Time::operator= ( const Time & _src)

Definition at line 431 of file DateTime.cpp.

432{
434 return *this;
435}

◆ second()

int Time::second ( ) const

Definition at line 482 of file DateTime.cpp.

483{
484 return (__milliseconds % MSEC_PER_MIN) / 1000;
485}

◆ toString()

String Time::toString ( ) const

Definition at line 493 of file DateTime.cpp.

494{
495 return String::format(
496 L"%02d:%02d:%02d.%03d",
497 hour(),
498 minute(),
499 second(),
500 msecond()
501 );
502}
int hour() const
Definition DateTime.cpp:472
int second() const
Definition DateTime.cpp:482
int msecond() const
Definition DateTime.cpp:487
int minute() const
Definition DateTime.cpp:477

◆ toStringF()

String Time::toStringF ( const wchar_t * _format = NULL)

Definition at line 506 of file DateTime.cpp.

507{
508 if (!_format)
509 _format = FORMAT_STRING;
510
511 __DCL_ASSERT(*_format != L'\0');
512
513 struct tm _time;
514 memset(&_time, 0, sizeof(struct tm));
515 _time.tm_hour = hour();
516 _time.tm_min = minute();
517 _time.tm_sec = second();
518 _time.tm_isdst = -1;
519
520 CharBuffer* buf = CharBuffer::create(DATETIME_FORMAT_BUFFER_SIZE);
521 size_t n = wcsftime(buf->data(), DATETIME_FORMAT_BUFFER_SIZE, _format, &_time);
522 __DCL_ASSERT(buf->__allocLength <= n);
523 buf->__dataLength = n;
524
525 String r = buf;
526 buf->release();
527 return r;
528}
#define DATETIME_FORMAT_BUFFER_SIZE
Definition DateTime.h:21
IOException *size_t r
Definition MediaInfo.cpp:82
#define __DCL_ASSERT(expr)
Definition Object.h:394
static const wchar_t * FORMAT_STRING
Definition DateTime.h:127

◆ totalMilliSeconds()

long Time::totalMilliSeconds ( ) const
inline

Definition at line 65 of file DateTime.inl.

66{
67 return __milliseconds;
68}

Member Data Documentation

◆ __milliseconds

unsigned long Time::__milliseconds
protected

Definition at line 136 of file DateTime.h.

◆ FORMAT_STRING

const wchar_t * Time::FORMAT_STRING = L"%H:%M:%S"
static

Definition at line 127 of file DateTime.h.


The documentation for this class was generated from the following files: