dmit.datetools module

Module for manipulating dates

dmit.datetools.add_month(date=None)[source]

Add one month to date

Parameters

date (datetime.datetime object) – Date to add one month to.

Returns

candidate – Candidate date with one month added

Return type

datetime.datetime object

dmit.datetools.count_days(date1=None, date2=None, includeEnd=False)[source]

Count the days between two dates

Parameters
  • date1 (datetime.datetime object) – Date 1

  • date2 (datetime.datetime object) – Date 2

  • includeEnd (boolean) – Whether to include the last day itself. Defaults to False.

Returns

days – Days between two dates.

Return type

integer

dmit.datetools.current_run_datetime(frequency: int = 180, delay: int = 120, roundto: str = 'hour', now: Optional[datetime.datetime] = None) datetime.datetime[source]

Get the time of the current valid analysis

Parameters
  • frequency (integer (optional)) – Frequency of analysis in minutes. Defaults to 180 minutes (3 hours).

  • delay (integer (optional)) – Delay in minutes between now and when analysis becomes available. Defaults to 120 minutes (2 hours)

  • roundto (string (optional)) – What to round to: Available is “hour”, “minute”. Defaults to “hour”

  • now (datetime object (optional)) – Current time to get run for. Defaults to now.

Returns

nowrounded – Time for the latest current valid analysis

Return type

datetime.datetime object

dmit.datetools.month_delta(d1: datetime.datetime, d2: datetime.datetime) int[source]

Find the difference between dates in months

Parameters
  • d1 (datetime.datetime object) – Date 1

  • d2 (datetime.datime object) – Date 2

Returns

delta – Difference between dates in months

Return type

integer

dmit.datetools.per_delta(start: datetime.datetime, end: datetime.datetime, delta: datetime.timedelta)[source]

Generate a list of datetimes within an interval

Parameters
  • start (datetime.datetime object) – Starting date

  • end (datetime.datetime object) – End date

  • delta (datetime.timedelta object) – Increment in time, e.g. 1 hour would be datetime.timedelta(hours=1)

dmit.datetools.round_time(dt: Optional[datetime.datetime] = None, roundTo: datetime.timedelta = datetime.timedelta(seconds=60), roundType: str = 'nearest') datetime.datetime[source]

Round a time to a nearest common format

Parameters
  • dt (datetime.datetime object) – Datetime one wish to round

  • roundTo (datetime.timedelta object (optional)) – What to round to. Defaults to datetime.timedelta(minutes=1).

  • roundType (str) – How to round. ‘nearest’, ‘roundup’, ‘rounddown’

Returns

dt_rounded – Rounded datetime

Return type

datetime.datetime object

dmit.datetools.subtract_one_month(date=None)[source]

Subtract one month from date

Parameters

date (datetime.datetime object) – Date to subtract one month from.

Returns

dt3 – Date after subtracting one month

Return type

datetime.datetime object