C++ Utilities  4.17.0
Useful C++ classes and routines such as argument parser, IO and conversion utilities
Public Member Functions | List of all members
ChronoUtilities::Period Class Reference

Represents a period of time. More...

#include <period.h>

Public Member Functions

 Period (const DateTime &begin, const DateTime &end)
 Constructs a new Period defined by a start DateTime and an end DateTime. More...
 
int years () const
 Returns the years component of the period represented by the current instance. More...
 
int months () const
 Returns the months component of the period represented by the current instance. More...
 
int days () const
 Returns the days component of the period represented by the current instance. More...
 

Detailed Description

Represents a period of time.

In contrast to the TimeSpan class, a Period represents a duration between a concrete starting DateTime and end DateTime. Without that context, a Period instance is useless.

Note the absence of the TimeSpan::totalYears() and TimeSpan::totalMonth() methods. The reason for this limitation of the TimeSpan class is that the TimeSpan is meant to express a duration independently of the concrete starting DateTime and end DateTime. However, the concrete calendar interval is neccassary for expressing a duration in terms of years and months because not all years and months have the same length.

The Period class, on the other hand, expresses the duration between a concrete starting DateTime and end DateTime as the number of years, month and days which have been passed in that particular order. The accuracy is one day, so the DateTime::timeOfDay() is lost.

Remarks
The order really matters. For example, the Period between DateTime::fromDateAndTime(1994, 7, 18) and DateTime::fromDateAndTime(2017, 12, 2) is 23 years, 4 month and 14 days. That means 23 years have been passed, then 4 month and finally 14 days. Adding the 14 days first and then the 4 month would make a difference of one day because July has 31 days and November only 30.

Definition at line 8 of file period.h.

Constructor & Destructor Documentation

◆ Period()

ChronoUtilities::Period::Period ( const DateTime begin,
const DateTime end 
)

Constructs a new Period defined by a start DateTime and an end DateTime.

The resulting Period will contain the number of years, month and days which have been passed between begin and end.

Todo:
Pass DateTime objects by value in v5.

Definition at line 36 of file period.cpp.

Member Function Documentation

◆ days()

int ChronoUtilities::Period::days ( ) const
inline

Returns the days component of the period represented by the current instance.

Definition at line 40 of file period.h.

◆ months()

int ChronoUtilities::Period::months ( ) const
inline

Returns the months component of the period represented by the current instance.

Definition at line 32 of file period.h.

◆ years()

int ChronoUtilities::Period::years ( ) const
inline

Returns the years component of the period represented by the current instance.

Definition at line 24 of file period.h.


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