     {:ok, result_time}
   end
 
-  @spec convert!(Time.t, Calendar.calendar) :: Time.t
+  @doc """
+  Similar to `Time.convert/2`, but raises an `ArgumentError`
+  if the conversion between the two calendars is not possible.
+  """
+  @spec convert!(Calendar.time, Calendar.calendar) :: Calendar.time
   def convert!(time, calendar) do
     case convert(time, calendar) do
       {:ok, value} ->

  @doc """
  Converts a DateTime from one calendar to another.

  ## Examples

      iex> dt1 = %DateTime{year: 2000, month: 2, day: 29, zone_abbr: "AMT",

    end
  end

  defp to_rata_die(%DateTime{calendar: calendar,year: year, month: month, day: day,
                             hour: hour, minute: minute, second: second, microsecond: microsecond}) do
    calendar.naive_datetime_to_rata_die(year, month, day, hour, minute, second, microsecond)
