Stellarium  0.20.4
Public Member Functions | Static Public Member Functions
MayaHaabCalendar Class Reference

The Maya Haab was a 365-day Solar calendar without intercalation. More...

#include <MayaHaabCalendar.hpp>

Public Member Functions

 MayaHaabCalendar (double jd)
 
virtual void retranslate () Q_DECL_OVERRIDE
 Translate e.g. stringlists of part names.
 
virtual void setJD (double JD) Q_DECL_OVERRIDE
 Set a calendar date from the Julian day number.
 
virtual void setDate (QVector< int > parts) Q_DECL_OVERRIDE
 set date from a vector of calendar date elements sorted from the largest to the smallest. More...
 
virtual QStringList getDateStrings () const Q_DECL_OVERRIDE
 get a stringlist of calendar date elements sorted from the largest to the smallest. More...
 
virtual QString getFormattedDateString () const Q_DECL_OVERRIDE
 get a formatted complete string for a date
 
- Public Member Functions inherited from Calendar
 Calendar (double jd)
 
virtual double getJD () const
 Get Julian day number from a calendar date.
 
virtual QVector< int > getDate () const
 get a vector of calendar date elements sorted from the largest to the smallest. More...
 
int rdCorrSum (QVector< int >factors, int corr)
 

Static Public Member Functions

static int mayanYearBearerFromFixed (int rd)
 get tzolkin name index of Haab year bearer (name of 0 Pop) from Haab date This must be one of 2, 7, 12, 17. More...
 
static int mayanCalendarRoundOnOrBefore (QVector< int >haab, QVector< int >tzolkin, int rd)
 get RD of a given calendar round date on or before rd. They repeat every 18980 days.
 
static int mayanHaabOrdinal (QVector< int > haab)
 
static int mayanHaabOnOrBefore (QVector< int > haab, int rd)
 
static QVector< int > mayanHaabFromFixed (int rd)
 
- Static Public Member Functions inherited from Calendar
static double momentFromJD (double jd, bool respectUTCoffset=true)
 Interfacing function from Reingold/Dershowitz: Calendrical Calculations Returns a "moment" in RD that represents JD. More...
 
static int fixedFromMoment (double rd)
 
static double timeFromMoment (double rd)
 
static int fixedFromJD (double jd, bool respectUTCoffset=true)
 Interfacing function from Reingold/Dershowitz: Calendrical Calculations Returns a fixed date in RD that represents noon of JD. More...
 
static double momentFromMJD (double mjd)
 
static double jdFromMoment (double rd, bool respectUTCoffset=true)
 interfacing function from Reingold/Dershowitz: Calendrical Calculations Returns a JD from an RD "moment" (including fractions of day) Stellarium extension: optionally includes local time zone offset. More...
 
static double jdFromFixed (double rd, bool respectUTCoffset=true)
 interfacing function from Reingold/Dershowitz: Calendrical Calculations Returns a JD from an RD "moment" (including fractions of day) Stellarium extension: optionally includes local time zone offset. More...
 
static double mjdFromFixed (double rd)
 
static int dayOfWeekFromFixed (int rd)
 weekday from RD date. CC.UE(1.60).
 
static int kdayOnOrBefore (const Calendar::Day k, const int rd)
 the R.D. of the nearest weekday k on or before rd
 
static int kdayOnOrAfter (const Calendar::Day k, const int rd)
 the R.D. of the nearest weekday k on or after rd
 
static int kdayNearest (const Calendar::Day k, const int rd)
 the R.D. of the nearest weekday k around rd
 
static int kdayBefore (const Calendar::Day k, const int rd)
 the R.D. of the nearest weekday k before rd
 
static int kdayAfter (const Calendar::Day k, const int rd)
 the R.D. of the nearest weekday k after rd
 
static double modInterval (double x, double a, double b)
 Interval modulus, CC.UE 1.24. More...
 
static int modInterval (int x, int a, int b)
 Interval modulus, CC.UE 1.24: This EXCLUDES the upper limit! Use StelUtils::amod(x, b) for CC's (x)mod[1..b].
 
static int rdCorrSum (QVector< int >parts, QVector< int >factors, int corr)
 Reingold-Dershowitz CC.UE 1.48.
 
static QVector< int > toRadix (int num, QVector< int >radix)
 Split integer to mixed-radix vector. Reingold-Dershowitz CC.UE 1.42.
 

Additional Inherited Members

- Public Types inherited from Calendar
enum  Day {
  sunday = 0, monday, tuesday, wednesday,
  thursday, friday, saturday
}
 enum from CC.UE-ch1.12.
 
enum  Season { spring = 0, summer = 90, autumn = 180, winter = 270 }
 
- Signals inherited from Calendar
void partsChanged (QVector< int > parts)
 
void jdChanged (double jd)
 
- Static Public Attributes inherited from Calendar
static constexpr const double J2000 =2451545.0
 
static constexpr const double jdEpoch =-1721424.5
 
static constexpr const double mjdEpoch =678576.0
 
static constexpr const int bogus =-1000000
 
- Protected Attributes inherited from Calendar
double JD
 
QVector< int > parts
 date expressed as JD(UT), including day fraction (ready to interact with the main application)
 

Detailed Description

Similar to the Egyptian calendar, after 18 months of 20 days there was a short "month" of 5 extra days. The implementation follows CC.

Member Function Documentation

◆ getDateStrings()

virtual QStringList MayaHaabCalendar::getDateStrings ( ) const
virtual

monthName-day[0..19]

Implements Calendar.

◆ mayanYearBearerFromFixed()

static int MayaHaabCalendar::mayanYearBearerFromFixed ( int  rd)
static

(TODO: write a test!)

◆ setDate()

virtual void MayaHaabCalendar::setDate ( QVector< int >  parts)
virtual

month[1..19]-day[0..19] We face a problem as the year is not counted. We can only find the date before current JD which matches the parts.

Implements Calendar.