class QCalendar#

QCalendar 类用于描述日历系统。 更多

摘要#

方法#

静态函数#

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来让我们知道。

详细说明#

QCalendar 对象使用特定系统的规则将年、月和日数字映射到特定的一天(最终通过其儒略日数识别),

默认的 QCalendar() 是一个前儒略日历,没有零年。其他日历可以通过启用适合的功能或加载插件来支持。支持作为功能功能的日历可以通过将 System 枚举传递给构造函数来构建。一旦构建,所有支持的日历都可以通过名称构建。(因此插件实例化其日历后端以注册。)通过 System 可访问的内置后端也可以按名称始终可用。使用自定义后端的日历也可以使用在构建时分配给后端的唯一ID来构建。

QCalendar 值是不可变的。

另请参阅

QDate QDateTime

class Unspecified#
class System#

此枚举类型用于指定日历系统的选择。

常量

说明

QCalendar.System.Gregorian

默认日历,用于国际。

QCalendar.System.Julian

古代罗马日历。

QCalendar.System.Milankovic

一些东正教教会使用的修订版儒略日历。

QCalendar.System.Jalali

阳历希吉拉日历(也称波斯历)。

QCalendar.System.IslamicCivil

(表格)伊斯兰公历。

另请参阅

QCalendar SystemId

__init__(name)#
参数:

name – str

__init__(system)
参数:

systemSystem

__init__(id)
参数:

idSystemId

这是一个重载函数。

构建日历对象。

当使用自定义日历实现时,后端在创建时将分配一个唯一的ID;将此作为 id 传递给此构造函数会获得使用该后端的 QCalendar。当后端没有按名称注册时,这可能很有用。

__init__()
static availableCalendars()#
返回类型:

字符串列表

返回可用日历系统的名称列表。

这些可能由插件或其他代码提供,除Qt提供的那些外,还可能由功能控制。

dateFromParts(parts)#
参数:

partsYearMonthDay

返回类型:

QDate

dateFromParts(year, month, day)
参数:
  • year – int

  • month – int

  • day – int

返回类型:

QDate

dateTimeToString(format, datetime, dateOnly, timeOnly, locale)#
参数:
返回类型:

str

返回表示给定日期、时间或日期时间的字符串。

如果datetime有效,则将其表示,并识别日期和时间字段格式说明符;否则,如果dateOnly有效,则将其表示,并且只识别日期字段格式说明符;最后,如果timeOnly有效,则将其表示,并且只识别时间字段格式说明符。如果这些都不有效,则返回空字符串。

有关受支持的字段说明符的详细信息,请参阅 toStringtoString()。在format中识别为字段说明符的字符将被代表日期和/或时间的适当数据的文本替换。表示它们的文本可能取决于指定的locale。其他字符将被原样复制到返回的字符串中。

dayOfWeek(date)#
参数:

dateQDate

返回类型:

int

返回给定 date 的星期数。

如果日历无法表示指示的日期,则返回0。从星期一到星期天分别返回1到7。闰日历可能使用其他数字来表示这些。

另请参阅

partsFromDate() DayOfWeek

daysInMonth(month[, year=QCalendar.Unspecified])#
参数:
  • month – int

  • year – int

返回类型:

int

返回给定年份中给定 month 的天数。

月份从1开始连续编号,每个年份的第一个月为1。如果 yearUnspecified (如果不传递,则为默认值),则返回普通年份中该月的长度。

daysInYear(year)#
参数:

year – int

返回类型:

int

返回给定 year 的天数。

作为 year 处理未定义 Unspecified

hasYearZero()#
返回类型:

bool

如果此日历有一个零年,则返回 true

日历可能从它的第一年开始表示年份,但可能没有描述其之前年份的方法;这样的日历没有零年,也不是前推的。

一些历法以顺延年份来表示纪元的年份,只需按照常规整数计数,这样,第一个年份之前的一年就是公元零年,其前面有负数的年份;这种历法是顺延历法并且有公元零年。还有一种历法也可能有公元零年(例如某些重大事件的年份,之后的年份即为此事件的第一年、第二年等),但不描述公元零年之前的年份。这种历法虽然有公元零年但不是顺延历法。

然而,有些历法以前面的年份采用交替的编号;例如,顺延的公历的第一个年份是公元1年,前一年是公元前1年,前两年是公元前2年,等等。在这种情况下,我们使用负年号进行这种交替计数,其中年份1之前是公元前的第1年,年份-2是公元前第1年的前一年,依此类推。这种历法是顺延历法但没有公元零年。

另请参阅

isProleptic()

isDateValid(year, month, day)#
参数:
  • year – int

  • month – int

  • day – int

返回类型:

bool

如果给定的 yearmonthday 在此历法中指定一个有效日期,则返回 true

通常情况下,这意味着 1 <= month <= monthsInYear(按年)和 1 <= day <= daysInMonth(月份和年份)。然而,带有闰日或闰月的历法可能会使情况复杂化。

isGregorian()#
返回类型:

bool

如果此日历对象是其他Qt API作为默认历法的公历对象,则返回 true,例如在 QDate 中。

isLeapYear(year)#
参数:

year – int

返回类型:

bool

如果给定的 year 是闰年,则返回 true

由于年份的长度不是整数的日数,一些年份比其他年份长。这可能是整整一个月或者仅仅是有一天;具体细节在不同历法中有所不同。

另请参阅

isDateValid()

isLunar()#
返回类型:

bool

如果此历法是天历,则返回 true

天历主要基于月亮的相位。

isLuniSolar()#
返回类型:

bool

如果此历法是阴阳历,则返回 true

阴阳历表达月亮的相位,同时适应于追踪太阳在天空中的位置变化,相对于固定星座。

isProleptic()#
返回类型:

bool

如果这个日历是前瞻性的,则返回true

前瞻性日历可以描述第一年之前任意长的时间。这些时间用负年份数表示,可能还包括一个零年。

另请参阅

hasYearZero()

isSolar()#
返回类型:

bool

如果这个日历是阳历的,则返回true

阳历主要是基于太阳在天空中的相对固定恒星位置变化。

isValid()#
返回类型:

bool

如果是有效的日历对象,则返回true。

使用不认识的日历名称构造日历可能导致无效对象。在通过名称创建日历后使用此方法进行检查。

matchCenturyToWeekday(parts, dow)#
参数:
  • partsYearMonthDay

  • dow - int

返回类型:

QDate

调整日期的世纪以匹配给定的星期几。

当给定一个日期的星期几、月中的日、月份和年份的最后两位数字时使用。返回一个QDate实例,该实例具有给定的dow作为其dayOfWeek(),匹配月份和月中的给定的parts。返回的QDateyear()应与parts.year的差异为100的倍数,优先考虑较小的倍数,而不是较大的倍数,并优先考虑正倍数而不是它们的负数。

如果没有日期符合这些条件,则返回一个无效的QDate:星期几与其他数据不匹配。例如,在格里高利历中,这种情况发生,因为其400年的周期是周长整数倍,所以任何给定月份和该月的任何一天,在特定年份的最后两位岁时,只会落在周的四天内(在世纪交替的2月29日是一个特殊案例,当时年为闰年,只有一天是可能的:星期二)。

maximumDaysInMonth()#
返回类型:

int

返回日历中任何年份最长月份的天数。

maximumMonthsInYear()#
返回类型:

int

返回任何年份可能含有的最大月份数。

minimumDaysInMonth()#
返回类型:

int

返回日历中月份最短的年份数。

monthName(locale, month[, year=QCalendar.Unspecified[, format=QLocale.LongFormat]])
参数:
返回类型:

str

返回月份的适当本地化名称。

月份由一个数字表示,其中month=1表示一年的第一个月,其后的月份按相应的顺序表示。如果month数字不可识别,则返回空字符串。

year可以不指定,在这种情况下,应使用典型年的月份编号到名称的映射。某些日历有闰月,这些月份不一定总在年底;其月份编号到名称的映射可能取决于闰月的放置。因此,如已知,应正常指定年份。

名称以在指定locale中通常用于完整日期的形式返回;format确定它应如何完全表达(即缩写的程度)。

monthsInYear(year)
参数:

year – int

返回类型:

int

返回给定year的月份数。

如果yearUnspecified,则返回一年中最多月份数。

name()
返回类型:

str

此日历的主要名称。

该日历还可能以某些别名知名。通过名称实例化的日历可能使用此类别名,此时其name()不一定与其实例化的别名相匹配。

partsFromDate(date)#
参数:

dateQDate

返回类型:

YearMonthDay

将一个QDate对象转换为年份、月份和月份中的日期。

如果日历无法表示给定的date,则返回的结构体的isValid()应该是false。否则,其年份、月份和日期成员记录其表示的相应部分。

standaloneMonthName(locale, month[, year=QCalendar.Unspecified[, format=QLocale.LongFormat]])#
参数:
返回类型:

str

返回一个月的适宜当地化的独立名称。

月份由一个数字表示,其中month=1表示一年的第一个月,其后的月份按相应的顺序表示。如果month数字不可识别,则返回空字符串。

year可以不指定,在这种情况下,应使用典型年的月份编号到名称的映射。某些日历有闰月,这些月份不一定总在年底;其月份编号到名称的映射可能取决于闰月的放置。因此,如已知,应正常指定年份。

该名称将以指定的locale在独立使用时的形式返回;format决定了其表达得多完整(即缩写的程度)。

standaloneWeekDayNamelocale, day[, format=QLocale.LongFormat])#
参数:
返回类型:

str

返回一周中一天的适宜当地化的独立名称。

周内的天数从1(星期一)到7(星期日)编号。某些日历可能支持其他天(例如闰日)的更高数字。如果day数字不可识别,则返回空字符串。

该名称将以指定的locale单独使用时的形式返回(例如,作为日历的月视图的表格显示中的列标题)format决定了其表达得多完整(即缩写的程度)。

另请参阅

weekDayName() dayOfWeek()

weekDayName(locale, day[, format=QLocale.LongFormat])#
参数:
返回类型:

str

返回表示一周中的某一天的本地化名称。

周内的天数从1(星期一)到7(星期日)编号。某些日历可能支持其他天(例如闰日)的更高数字。如果day数字不可识别,则返回空字符串。

名称以在指定locale中通常用于完整日期的形式返回;format确定它应如何完全表达(即缩写的程度)。