   @type year :: -9999..9999
   @type month :: 1..12
   @type day :: 1..31
+  @type hour :: 0..23
+  @type minute :: 0..59
+  @type second :: 0..59
 
   @typedoc """
   Integer that represents the day of the week, where 1 is Monday and 7 is Sunday.
   """
   @type day_of_week :: 1..7
+
+  @type day_of_year :: 1..366
+  @type quarter_of_year :: 1..4
+  @type year_of_era :: {1..10000, era}
 
   @seconds_per_minute 60
   @seconds_per_hour 60 * 60


  """
  @doc since: "1.4.0"
  @spec day_of_week(year, month, day) :: day_of_week
  @impl true
  def day_of_week(year, month, day) do
    date_to_iso_days(year, month, day)


  """
  @doc since: "1.8.0"
  @spec day_of_year(year, month, day) :: day_of_year()
  @impl true
  def day_of_year(year, month, day) do
    ensure_day_in_month!(year, month, day)
