DCL 4.1
Loading...
Searching...
No Matches
Interval Class Reference

#include <DateTime.h>

Public Member Functions

 Interval ()
 Interval (const Interval &_src)
 Interval (int _days, int _milliseconds)
 Interval (int _days, int _hours, int _minutes, int _seconds, int _milliseconds=0)
 Interval (int64_t _milliseconds)
void assign (int _days, int _milliseconds)
void assign (int _days, int _hours, int _minutes, int _seconds, int _milliseconds=0)
void assign (int64_t _milliseconds)
const Intervaloperator= (const Interval &_src)
const Intervaloperator+= (const Interval &_iv)
const Intervaloperator-= (const Interval &_iv)
void decode (long &_days, int &_hours, int &_minutes, int &_seconds, int &_milliseconds) const
void decode (long &_days, long &_milliseconds) const
long days () const
int hour () const
int minute () const
int second () const
int msecond () const
int64_t totalHours () const
int64_t totalMinutes () const
int64_t totalSeconds () const
int64_t totalMilliSeconds () const
String toString () const

Protected Attributes

int64_t __milliseconds

Detailed Description

Definition at line 156 of file DateTime.h.

Constructor & Destructor Documentation

◆ Interval() [1/5]

Interval::Interval ( )

Definition at line 536 of file DateTime.cpp.

537{
538 __milliseconds = 0;
539}
int64_t __milliseconds
Definition DateTime.h:200

◆ Interval() [2/5]

Interval::Interval ( const Interval & _src)

Definition at line 541 of file DateTime.cpp.

542{
544}

◆ Interval() [3/5]

Interval::Interval ( int _days,
int _milliseconds )

Definition at line 546 of file DateTime.cpp.

547{
548 assign(_days, _milliseconds);
549}
void assign(int _days, int _milliseconds)
Definition DateTime.cpp:564

◆ Interval() [4/5]

Interval::Interval ( int _days,
int _hours,
int _minutes,
int _seconds,
int _milliseconds = 0 )

Definition at line 551 of file DateTime.cpp.

555{
556 assign(_days, _hours, _minutes, _seconds, _milliseconds);
557}

◆ Interval() [5/5]

Interval::Interval ( int64_t _milliseconds)

Definition at line 559 of file DateTime.cpp.

560{
561 assign(_milliseconds);
562}

Member Function Documentation

◆ assign() [1/3]

void Interval::assign ( int _days,
int _hours,
int _minutes,
int _seconds,
int _milliseconds = 0 )

Definition at line 569 of file DateTime.cpp.

573{
574 __milliseconds= (int64_t)_days * MSEC_PER_DAY
575 + (int64_t)_hours * MSEC_PER_HOUR
576 + (int64_t)_minutes * MSEC_PER_MIN
577 + _seconds * 1000
578 + _milliseconds;
579}
#define MSEC_PER_HOUR
Definition DateTime.cpp:392
#define MSEC_PER_DAY
Definition DateTime.cpp:390
#define MSEC_PER_MIN
Definition DateTime.cpp:394

◆ assign() [2/3]

void Interval::assign ( int _days,
int _milliseconds )

Definition at line 564 of file DateTime.cpp.

565{
566 __milliseconds = (int64_t)_days * MSEC_PER_DAY + _milliseconds;
567}

◆ assign() [3/3]

void Interval::assign ( int64_t _milliseconds)

Definition at line 581 of file DateTime.cpp.

582{
583 __milliseconds = _milliseconds;
584}

◆ days()

long Interval::days ( ) const

Definition at line 637 of file DateTime.cpp.

638{
639 return (long)(__milliseconds / MSEC_PER_DAY);
640}

◆ decode() [1/2]

void Interval::decode ( long & _days,
int & _hours,
int & _minutes,
int & _seconds,
int & _milliseconds ) const

Definition at line 619 of file DateTime.cpp.

623{
624 _days = (long)(__milliseconds / MSEC_PER_DAY);
625 _hours = (int)((__milliseconds % MSEC_PER_DAY) / MSEC_PER_HOUR);
626 _minutes = (int)((__milliseconds % MSEC_PER_HOUR) / MSEC_PER_MIN);
627 _seconds = (int)((__milliseconds % MSEC_PER_MIN) / 1000);
628 _milliseconds = (int)(__milliseconds % 1000);
629}

◆ decode() [2/2]

void Interval::decode ( long & _days,
long & _milliseconds ) const

Definition at line 631 of file DateTime.cpp.

632{
633 _days = (long)(__milliseconds / MSEC_PER_DAY);
634 _milliseconds = (long)(__milliseconds % MSEC_PER_DAY);
635}

◆ hour()

int Interval::hour ( ) const

Definition at line 642 of file DateTime.cpp.

643{
644 return (int)((__milliseconds % MSEC_PER_DAY) / MSEC_PER_HOUR);
645}

◆ minute()

int Interval::minute ( ) const

Definition at line 647 of file DateTime.cpp.

648{
649 return (int)((__milliseconds % MSEC_PER_HOUR) / MSEC_PER_MIN);
650}

◆ msecond()

int Interval::msecond ( ) const

Definition at line 657 of file DateTime.cpp.

658{
659 return (int)(__milliseconds % 1000);
660}

◆ operator+=()

const Interval & Interval::operator+= ( const Interval & _iv)

Definition at line 593 of file DateTime.cpp.

594{
596
597 return *this;
598}

◆ operator-=()

const Interval & Interval::operator-= ( const Interval & _iv)

Definition at line 600 of file DateTime.cpp.

601{
603
604 return *this;
605}

◆ operator=()

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

Definition at line 586 of file DateTime.cpp.

587{
589
590 return *this;
591}

◆ second()

int Interval::second ( ) const

Definition at line 652 of file DateTime.cpp.

653{
654 return (int)((__milliseconds % MSEC_PER_MIN) / 1000);
655}

◆ toString()

String Interval::toString ( ) const

Definition at line 677 of file DateTime.cpp.

678{
679 long d;
680 int h, m, s, msec;
681 decode(d, h, m, s, msec);
682 if (__milliseconds < 0) {
683 return String::format(L"-%ld %02d:%02d:%02d.%03d",
684 -d,
685 -h, -m, -s, -msec
686 );
687 }
688 else {
689 return String::format(L"+%ld %02d:%02d:%02d.%03d",
690 d,
691 h, m, s, msec
692 );
693 }
694}
void decode(long &_days, int &_hours, int &_minutes, int &_seconds, int &_milliseconds) const
Definition DateTime.cpp:619

◆ totalHours()

int64_t Interval::totalHours ( ) const

Definition at line 662 of file DateTime.cpp.

663{
665}

◆ totalMilliSeconds()

int64_t Interval::totalMilliSeconds ( ) const
inline

Definition at line 116 of file DateTime.inl.

117{
118 return __milliseconds;
119}

◆ totalMinutes()

int64_t Interval::totalMinutes ( ) const

Definition at line 667 of file DateTime.cpp.

668{
670}

◆ totalSeconds()

int64_t Interval::totalSeconds ( ) const

Definition at line 672 of file DateTime.cpp.

673{
674 return __milliseconds / 1000;
675}

Member Data Documentation

◆ __milliseconds

int64_t Interval::__milliseconds
protected

Definition at line 200 of file DateTime.h.


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