anchor.diff:  price_type("usage") ->
   	usage.
   
  --spec date(MilliSeconds) -> Result
  -	when
  -		MilliSeconds :: pos_integer(),
  +-spec date(DateTimeFormat) -> Result
  +	when
  +		DateTimeFormat :: pos_integer() | tuple(),
   		Result :: calendar:datetime().
  -%% @doc Convert timestamp to date and time.
  +%% @doc Convert timestamp to date and time or
  +%%	date and time to timeStamp.
   date(MilliSeconds) when is_integer(MilliSeconds) ->
   	Seconds = ?EPOCH + (MilliSeconds div 1000),
  -	calendar:gregorian_seconds_to_datetime(Seconds).
  +	calendar:gregorian_seconds_to_datetime(Seconds);
  +date(DateTime) when is_tuple(DateTime) ->
  +	calendar:datetime_to_gregorian_seconds(DateTime) - ?EPOCH.
   
   -spec iso8601(MilliSeconds) -> Result
   	when
  
positive.code: 
  -include_lib("radius/include/radius.hrl").
  -include("ocs.hrl").
  
  -spec content_types_accepted() -> ContentTypes
  	when
  
negative.code: 			[Year, Month, Day, Hour, Minute, Second, MilliSeconds rem 1000]),
  	lists:flatten(Chars).
  
  -spec timestamp(ISO8610) -> Result
  	when
  		ISO8610	:: string(),
  		Result	:: pos_integer() | {error, Reason},
  		Reason	:: term().
  %% @doc Convert ISO 8601 format date and time to timestamp.
  timestamp(ISO8610) when is_list(ISO8610) ->
  	DateFormat = "~4d-~2d-~2d",
  	TimeFormat = "T~2d:~2d:~2d.~3dZ",
  	case io_lib:fread(DateFormat ++ TimeFormat, ISO8610) of
  		{ok, [Y, M, D, H, Min, S, MSR], _} ->
  			DateTime = {{Y, M, D}, {H, Min, S + MSR}}
  			date(DateTime);
  		{error, Reason} ->
  			{error, Reason}
  	end.
  