MarcoPolo - DateTime

This struct defines datetime objects in your Elixir application. It renders as a java.util.Date class in OrientDB.

Working with DateTimes

%MarcoPolo.DateTime{
   :year <year>,
   :month <month>,
   :day <day>,
   :hour <hour>,
   :min <minute>,
   :sec <sec>,
   :msec <msec>}
  • <year> Defines the year in the date, a non-negative integer. Defaults to 0.w
  • <month> Defines the month in the date, a non-negative integer between 1 and 12. Defaults to 1.
  • <day> Defines the day in the date, a non-negative integer between 1 and 31. Defaults to 1.
  • <hour> Defines the hour in the time, a non-negative integer between 0 and 23. Defaults to 0.
  • <minute> Defines the minute of the time, a non-negative integer between 0 and 59. Defaults to 0.
  • <sec> Defines the second of the time, a non-negative integer between 0 and 59. Defaults to 0.
  • <msec> Defines the microseconds of the time, a non-negative integer between 0 and 999. Defaults to 0.

Example

Imagine a case where you run a particular operation at set times each day. Rather than defining DateTime objects every time you need to timestamp this operation, you might want a function to set the relevant data for you:

@doc """ Generate Date for Fiscal Quarter """
def gen_datetime(year, month, day, count) do

	# Determine Month of Fiscal Quarter
	case count do
		1 -> hour = 6
		2 -> hour = 12
		3 -> hour = 18
		4 -> hour = 0
	end

	# Generate and Return Date
	%MarcoPolo.Date{
		:year year,
		:month month,
		:day day,
		:hour hour}
end