Idris2Doc : IotaTime.Calendar.Persian

IotaTime.Calendar.Persian

(source)

Definitions

dataPersian : Type
  The astronomical Persian calendar over its vouched year range 1-1500.

Totality: total
Visibility: public export
Constructor: 
PersianCalendar : Persian

Hint: 
CalendarPersian
dataPersianMonth : Type
Totality: total
Visibility: public export
Constructors:
Farvardin : PersianMonth
Ordibehesht : PersianMonth
Khordad : PersianMonth
Tir : PersianMonth
Mordad : PersianMonth
Shahrivar : PersianMonth
Mehr : PersianMonth
Aban : PersianMonth
Azar : PersianMonth
Dey : PersianMonth
Bahman : PersianMonth
Esfand : PersianMonth

Hints:
EqPersianMonth
OrdPersianMonth
ShowPersianMonth
monthNumber : PersianMonth->Integer
Totality: total
Visibility: public export
weekdayFromDays : Integer->DayOfWeek
Totality: total
Visibility: public export
minimumYear : Integer
Totality: total
Visibility: public export
maximumYear : Integer
Totality: total
Visibility: public export
epoch : Integer
Totality: total
Visibility: public export
leapYears : ListInteger
Totality: total
Visibility: public export
isLeapYear : Year->Bool
  Whether a supported Persian year contains Esfand 30.

Totality: total
Visibility: public export
countLeapsBefore : Integer->ListInteger->Integer
Totality: total
Visibility: public export
newYearDay : Year->Integer
Totality: total
Visibility: public export
lastDay : Integer
Totality: total
Visibility: public export
recordPersianDate : Type
Totality: total
Visibility: export
Constructor: 
MkPersianDate : (daysSinceEpoch : Integer) -> (0_ : So ((daysSinceEpoch>=epoch) && Delay (daysSinceEpoch<=lastDay))) ->PersianDate

Projections:
.daysSinceEpoch : PersianDate->Integer
0.validDays : ({rec:0} : PersianDate) ->So ((daysSinceEpoch{rec:0}>=epoch) && Delay (daysSinceEpoch{rec:0}<=lastDay))

Hints:
ApplyPeriodPersianDate
CalendarNavigationPersianDate
CalendarValuePersianDate
EqPersianDate
HasCalendarPersianDate
HasCalendarBridgePersianDate
OrdPersianDate
PeriodTargetPersianDate
ShowPersianDate
maxDaysInMonth : PersianMonth->Year->DayOfMonth
Totality: total
Visibility: public export
isValidDate : DayOfMonth->PersianMonth->Year->Bool
Totality: total
Visibility: public export
monthOffset : PersianMonth->Integer
Totality: total
Visibility: public export
daysFromCivil : Year->PersianMonth->DayOfMonth->Integer
Totality: total
Visibility: public export
calendarDate : (valueDay : DayOfMonth) -> (valueMonth : PersianMonth) -> (valueYear : Year) -> {auto0_ : So (isValidDatevalueDayvalueMonthvalueYear)} ->CalendarDatePersian
  Construct a statically validated Persian date in years 1-1500.

Totality: total
Visibility: public export
dataPersianDateError : Type
  Failures produced while refining untrusted Persian date data.

Totality: total
Visibility: public export
Constructors:
InvalidPersianDate : DayOfMonth->PersianMonth->Year->PersianDateError
InvalidPersianDayCount : Integer->PersianDateError
InvalidPersianNthDay : DayNth->DayOfWeek->PersianMonth->Year->PersianDateError
InvalidPersianWeekDate : WeekNumber->DayOfWeek->Year->PersianDateError
refineDate : DayOfMonth->PersianMonth->Year->EitherPersianDateError (CalendarDatePersian)
  Validate runtime day, month, and year components as a Persian date.

Totality: total
Visibility: public export
fromDays : (days : Integer) -> {auto0_ : So (isValidDaysdays)} ->CalendarDatePersian
  Construct a Persian date from a statically valid calendar-relative day count.

Totality: total
Visibility: public export
refineDays : Integer->EitherPersianDateError (CalendarDatePersian)
  Validate a runtime Persian day count within the supported year range.

Totality: total
Visibility: public export
nthDayOfMonth : DayNth->DayOfWeek->PersianMonth->Year->DayOfMonth
Totality: total
Visibility: public export
isValidNthDay : DayNth->DayOfWeek->PersianMonth->Year->Bool
Totality: total
Visibility: public export
fromNthDay : (nth : DayNth) -> (target : DayOfWeek) -> (valueMonth : PersianMonth) -> (valueYear : Year) -> {auto0_ : So (isValidNthDaynthtargetvalueMonthvalueYear)} ->CalendarDatePersian
  Construct the nth requested weekday in a Persian month.

Totality: total
Visibility: public export
refineNthDay : DayNth->DayOfWeek->PersianMonth->Year->EitherPersianDateError (CalendarDatePersian)
  Validate an nth-weekday request for a Persian month.

Totality: total
Visibility: public export
weekDateDays : WeekNumber->DayOfWeek->Year->Integer
Totality: total
Visibility: public export
isValidWeekDate : WeekNumber->DayOfWeek->Year->Bool
Totality: total
Visibility: public export
fromWeekDate : (week : WeekNumber) -> (target : DayOfWeek) -> (valueYear : Year) -> {auto0_ : So (isValidWeekDateweektargetvalueYear)} ->CalendarDatePersian
  Construct a Persian Saturday-based week date under static validity evidence.

Totality: total
Visibility: public export
refineWeekDate : WeekNumber->DayOfWeek->Year->EitherPersianDateError (CalendarDatePersian)
  Validate a runtime Persian Saturday-based week date.

Totality: total
Visibility: public export
dataPersianArithmeticRule : Type
  Exact arithmetic rules available for the Solar Hijri calendar.

Totality: total
Visibility: public export
Constructors:
Simple : PersianArithmeticRule
Birashk : PersianArithmeticRule

Hints:
ApplyPeriod (ArithmeticPersianDaterule)
Calendar (ArithmeticPersianrule)
CalendarNavigation (ArithmeticPersianDaterule)
CalendarValue (ArithmeticPersianDaterule)
Eq (ArithmeticPersianDaterule)
HasCalendar (ArithmeticPersianDaterule)
HasCalendarBridge (ArithmeticPersianDaterule)
Ord (ArithmeticPersianDaterule)
PeriodTarget (ArithmeticPersianDaterule)
Show (ArithmeticPersianDaterule)
dataArithmeticPersian : PersianArithmeticRule->Type
  A Persian calendar whose leap years are fixed by an arithmetic rule.

Totality: total
Visibility: public export
Constructor: 
MkArithmeticPersian : ArithmeticPersianrule

Hint: 
Calendar (ArithmeticPersianrule)
PersianSimple : Type
  The legacy 33-year Persian cycle used by the BCL before .NET 4.6.

Totality: total
Visibility: public export
PersianArithmetic : Type
  Ahmad Birashk's nested 2820-year arithmetic Persian cycle.

Totality: total
Visibility: public export
arithmeticRuleName : PersianArithmeticRule->String
Totality: total
Visibility: export
recordArithmeticPersianDate : PersianArithmeticRule->Type
Totality: total
Visibility: export
Constructor: 
MkArithmeticPersianDate : (arithmeticDaysSinceEpoch : Integer) -> (0_ : So ((arithmeticDaysSinceEpoch>=arithmeticRuleEpochrule) && Delay (arithmeticDaysSinceEpoch<=arithmeticRuleLastDayrule))) ->ArithmeticPersianDaterule

Projections:
.arithmeticDaysSinceEpoch : ArithmeticPersianDaterule->Integer
0.validDays : ({rec:0} : ArithmeticPersianDaterule) ->So ((arithmeticDaysSinceEpoch{rec:0}>=arithmeticRuleEpochrule) && Delay (arithmeticDaysSinceEpoch{rec:0}<=arithmeticRuleLastDayrule))

Hints:
ApplyPeriod (ArithmeticPersianDaterule)
CalendarNavigation (ArithmeticPersianDaterule)
CalendarValue (ArithmeticPersianDaterule)
Eq (ArithmeticPersianDaterule)
HasCalendar (ArithmeticPersianDaterule)
HasCalendarBridge (ArithmeticPersianDaterule)
Ord (ArithmeticPersianDaterule)
PeriodTarget (ArithmeticPersianDaterule)
Show (ArithmeticPersianDaterule)
minimumArithmeticYear : Integer
Totality: total
Visibility: public export
maximumArithmeticYear : Integer
Totality: total
Visibility: public export
isArithmeticLeapYear : Year->Bool
Totality: total
Visibility: public export
arithmeticNewYearDay : Year->Integer
Totality: total
Visibility: public export
arithmeticLastDay : Integer
  The final supported day under the selected arithmetic Persian rule.

Totality: total
Visibility: public export
maxArithmeticDaysInMonth : PersianMonth->Year->DayOfMonth
Totality: total
Visibility: public export
isValidArithmeticDate : DayOfMonth->PersianMonth->Year->Bool
Totality: total
Visibility: public export
arithmeticDaysFromCivil : Year->PersianMonth->DayOfMonth->Integer
Totality: total
Visibility: public export
arithmeticRuleCalendarDate : (valueDay : DayOfMonth) -> (valueMonth : PersianMonth) -> (valueYear : Year) -> {auto0_ : So (isValidArithmeticDatevalueDayvalueMonthvalueYear)} ->CalendarDate (ArithmeticPersianrule)
  Construct a statically validated Persian date under an arithmetic rule.

Totality: total
Visibility: public export
simpleCalendarDate : (valueDay : DayOfMonth) -> (valueMonth : PersianMonth) -> (valueYear : Year) -> {auto0_ : So (isValidArithmeticDatevalueDayvalueMonthvalueYear)} ->CalendarDatePersianSimple
  Construct a date in the legacy 33-year Persian cycle.

Totality: total
Visibility: public export
arithmeticCalendarDate : (valueDay : DayOfMonth) -> (valueMonth : PersianMonth) -> (valueYear : Year) -> {auto0_ : So (isValidArithmeticDatevalueDayvalueMonthvalueYear)} ->CalendarDatePersianArithmetic
  Construct a date in Birashk's 2820-year arithmetic Persian cycle.

Totality: total
Visibility: public export
refineArithmeticRuleDate : DayOfMonth->PersianMonth->Year->EitherPersianDateError (CalendarDate (ArithmeticPersianrule))
  Validate runtime components under a selected arithmetic Persian rule.

Totality: total
Visibility: public export
refineSimpleDate : DayOfMonth->PersianMonth->Year->EitherPersianDateError (CalendarDatePersianSimple)
Totality: total
Visibility: public export
refineArithmeticDate : DayOfMonth->PersianMonth->Year->EitherPersianDateError (CalendarDatePersianArithmetic)
Totality: total
Visibility: public export
refineArithmeticDays : Integer->EitherPersianDateError (CalendarDate (ArithmeticPersianrule))
  Validate a day count under a selected arithmetic Persian rule.

Totality: total
Visibility: public export
isValidArithmeticNthDay : DayNth->DayOfWeek->PersianMonth->Year->Bool
Totality: total
Visibility: public export
arithmeticFromNthDay : (nth : DayNth) -> (target : DayOfWeek) -> (valueMonth : PersianMonth) -> (valueYear : Year) -> {auto0_ : So (isValidArithmeticNthDaynthtargetvalueMonthvalueYear)} ->CalendarDate (ArithmeticPersianrule)
  Construct an nth weekday under a selected arithmetic Persian rule.

Totality: total
Visibility: public export
refineArithmeticNthDay : DayNth->DayOfWeek->PersianMonth->Year->EitherPersianDateError (CalendarDate (ArithmeticPersianrule))
  Validate an nth-weekday request under an arithmetic Persian rule.

Totality: total
Visibility: public export
isValidArithmeticWeekDate : WeekNumber->DayOfWeek->Year->Bool
Totality: total
Visibility: public export
arithmeticFromWeekDate : (week : WeekNumber) -> (target : DayOfWeek) -> (valueYear : Year) -> {auto0_ : So (isValidArithmeticWeekDateweektargetvalueYear)} ->CalendarDate (ArithmeticPersianrule)
  Construct a Saturday-based week date under an arithmetic Persian rule.

Totality: total
Visibility: public export
refineArithmeticWeekDate : WeekNumber->DayOfWeek->Year->EitherPersianDateError (CalendarDate (ArithmeticPersianrule))
  Validate a Saturday-based week date under an arithmetic Persian rule.

Totality: total
Visibility: public export