- class QCalendar#
-
摘要#
方法#
def
__init__()
def
dateFromParts()
def
dayOfWeek()
def
daysInMonth()
def
daysInYear()
def
hasYearZero()
def
isDateValid()
def
isGregorian()
def
isLeapYear()
定义
isLunar()
定义
isSolar()
定义
isValid()
定义
monthName()
定义
name()
静态函数#
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来让我们知道。
详细说明#
QCalendar
对象使用特定系统的规则将年、月和日数字映射到特定的一天(最终通过其儒略日数识别),默认的
QCalendar()
是一个前儒略日历,没有零年。其他日历可以通过启用适合的功能或加载插件来支持。支持作为功能功能的日历可以通过将System
枚举传递给构造函数来构建。一旦构建,所有支持的日历都可以通过名称构建。(因此插件实例化其日历后端以注册。)通过System
可访问的内置后端也可以按名称始终可用。使用自定义后端的日历也可以使用在构建时分配给后端的唯一ID来构建。QCalendar
值是不可变的。- 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)
- 参数:
system –
System
- __init__(id)
- 参数:
id –
SystemId
这是一个重载函数。
构建日历对象。
当使用自定义日历实现时,后端在创建时将分配一个唯一的ID;将此作为
id
传递给此构造函数会获得使用该后端的QCalendar
。当后端没有按名称注册时,这可能很有用。- __init__()
- static availableCalendars()#
- 返回类型:
字符串列表
返回可用日历系统的名称列表。
这些可能由插件或其他代码提供,除Qt提供的那些外,还可能由功能控制。
- dateFromParts(year, month, day)
- 参数:
year – int
month – int
day – int
- 返回类型:
- dateTimeToString(format, datetime, dateOnly, timeOnly, locale)#
返回表示给定日期、时间或日期时间的字符串。
如果
datetime
有效,则将其表示,并识别日期和时间字段格式说明符;否则,如果dateOnly
有效,则将其表示,并且只识别日期字段格式说明符;最后,如果timeOnly
有效,则将其表示,并且只识别时间字段格式说明符。如果这些都不有效,则返回空字符串。有关受支持的字段说明符的详细信息,请参阅
toString
和toString()
。在format
中识别为字段说明符的字符将被代表日期和/或时间的适当数据的文本替换。表示它们的文本可能取决于指定的locale
。其他字符将被原样复制到返回的字符串中。返回给定
date
的星期数。如果日历无法表示指示的日期,则返回0。从星期一到星期天分别返回1到7。闰日历可能使用其他数字来表示这些。
另请参阅
- daysInMonth(month[, year=QCalendar.Unspecified])#
- 参数:
month – int
year – int
- 返回类型:
int
返回给定年份中给定
month
的天数。月份从1开始连续编号,每个年份的第一个月为1。如果
year
为Unspecified
(如果不传递,则为默认值),则返回普通年份中该月的长度。- daysInYear(year)#
- 参数:
year – int
- 返回类型:
int
返回给定
year
的天数。作为
year
处理未定义Unspecified
。- hasYearZero()#
- 返回类型:
bool
如果此日历有一个零年,则返回
true
。日历可能从它的第一年开始表示年份,但可能没有描述其之前年份的方法;这样的日历没有零年,也不是前推的。
一些历法以顺延年份来表示纪元的年份,只需按照常规整数计数,这样,第一个年份之前的一年就是公元零年,其前面有负数的年份;这种历法是顺延历法并且有公元零年。还有一种历法也可能有公元零年(例如某些重大事件的年份,之后的年份即为此事件的第一年、第二年等),但不描述公元零年之前的年份。这种历法虽然有公元零年但不是顺延历法。
然而,有些历法以前面的年份采用交替的编号;例如,顺延的公历的第一个年份是公元1年,前一年是公元前1年,前两年是公元前2年,等等。在这种情况下,我们使用负年号进行这种交替计数,其中年份1之前是公元前的第1年,年份-2是公元前第1年的前一年,依此类推。这种历法是顺延历法但没有公元零年。
另请参阅
- isDateValid(year, month, day)#
- 参数:
year – int
month – int
day – int
- 返回类型:
bool
如果给定的
year
、month
和day
在此历法中指定一个有效日期,则返回true
。通常情况下,这意味着 1 <= month <=
monthsInYear
(按年)和 1 <= day <=daysInMonth
(月份和年份)。然而,带有闰日或闰月的历法可能会使情况复杂化。- isGregorian()#
- 返回类型:
bool
如果此日历对象是其他Qt API作为默认历法的公历对象,则返回
true
,例如在QDate
中。- isLeapYear(year)#
- 参数:
year – int
- 返回类型:
bool
如果给定的
year
是闰年,则返回true
。由于年份的长度不是整数的日数,一些年份比其他年份长。这可能是整整一个月或者仅仅是有一天;具体细节在不同历法中有所不同。
另请参阅
- isLunar()#
- 返回类型:
bool
如果此历法是天历,则返回
true
。天历主要基于月亮的相位。
- isLuniSolar()#
- 返回类型:
bool
如果此历法是阴阳历,则返回
true
。阴阳历表达月亮的相位,同时适应于追踪太阳在天空中的位置变化,相对于固定星座。
- isProleptic()#
- 返回类型:
bool
如果这个日历是前瞻性的,则返回
true
。前瞻性日历可以描述第一年之前任意长的时间。这些时间用负年份数表示,可能还包括一个零年。
另请参阅
- isSolar()#
- 返回类型:
bool
如果这个日历是阳历的,则返回
true
。阳历主要是基于太阳在天空中的相对固定恒星位置变化。
- isValid()#
- 返回类型:
bool
如果是有效的日历对象,则返回true。
使用不认识的日历名称构造日历可能导致无效对象。在通过名称创建日历后使用此方法进行检查。
调整日期的世纪以匹配给定的星期几。
当给定一个日期的星期几、月中的日、月份和年份的最后两位数字时使用。返回一个
QDate
实例,该实例具有给定的dow
作为其dayOfWeek()
,匹配月份和月中的给定的parts
。返回的QDate
的year()
应与parts.year
的差异为100的倍数,优先考虑较小的倍数,而不是较大的倍数,并优先考虑正倍数而不是它们的负数。如果没有日期符合这些条件,则返回一个无效的QDate:星期几与其他数据不匹配。例如,在格里高利历中,这种情况发生,因为其400年的周期是周长整数倍,所以任何给定月份和该月的任何一天,在特定年份的最后两位岁时,只会落在周的四天内(在世纪交替的2月29日是一个特殊案例,当时年为闰年,只有一天是可能的:星期二)。
- maximumDaysInMonth()#
- 返回类型:
int
返回日历中任何年份最长月份的天数。
- maximumMonthsInYear()#
- 返回类型:
int
返回任何年份可能含有的最大月份数。
- minimumDaysInMonth()#
- 返回类型:
int
返回日历中月份最短的年份数。
-
monthName(locale, month[, year=QCalendar.Unspecified[, format=QLocale.LongFormat]])
- 参数:
locale –
QLocale
month – int
year – int
格式 –
FormatType
- 返回类型:
str
返回月份的适当本地化名称。
月份由一个数字表示,其中month
=1表示一年的第一个月,其后的月份按相应的顺序表示。如果month
数字不可识别,则返回空字符串。
year
可以不指定,在这种情况下,应使用典型年的月份编号到名称的映射。某些日历有闰月,这些月份不一定总在年底;其月份编号到名称的映射可能取决于闰月的放置。因此,如已知,应正常指定年份。
名称以在指定locale
中通常用于完整日期的形式返回;format
确定它应如何完全表达(即缩写的程度)。
-
monthsInYear(year)
- 参数:
year – int
- 返回类型:
int
返回给定year
的月份数。
如果year
为Unspecified
,则返回一年中最多月份数。
-
name()
- 返回类型:
str
此日历的主要名称。
该日历还可能以某些别名知名。通过名称实例化的日历可能使用此类别名,此时其name()不一定与其实例化的别名相匹配。
将一个QDate
对象转换为年份、月份和月份中的日期。
如果日历无法表示给定的date
,则返回的结构体的isValid()
应该是false。否则,其年份、月份和日期成员记录其表示的相应部分。
- standaloneMonthName(locale, month[, year=QCalendar.Unspecified[, format=QLocale.LongFormat]])#
- 参数:
locale –
QLocale
month – int
year – int
格式 –
FormatType
- 返回类型:
str
返回一个月的适宜当地化的独立名称。
月份由一个数字表示,其中month
=1表示一年的第一个月,其后的月份按相应的顺序表示。如果month
数字不可识别,则返回空字符串。
year
可以不指定,在这种情况下,应使用典型年的月份编号到名称的映射。某些日历有闰月,这些月份不一定总在年底;其月份编号到名称的映射可能取决于闰月的放置。因此,如已知,应正常指定年份。
该名称将以指定的locale
在独立使用时的形式返回;format
决定了其表达得多完整(即缩写的程度)。
- standaloneWeekDayNamelocale, day[, format=QLocale.LongFormat])#
- 参数:
locale –
QLocale
day – int
格式 –
FormatType
- 返回类型:
str
返回一周中一天的适宜当地化的独立名称。
周内的天数从1(星期一)到7(星期日)编号。某些日历可能支持其他天(例如闰日)的更高数字。如果day
数字不可识别,则返回空字符串。
该名称将以指定的locale
单独使用时的形式返回(例如,作为日历的月视图的表格显示中的列标题)format
决定了其表达得多完整(即缩写的程度)。
另请参阅
- weekDayName(locale, day[, format=QLocale.LongFormat])#
- 参数:
locale –
QLocale
day – int
格式 –
FormatType
- 返回类型:
str
返回表示一周中的某一天的本地化名称。
周内的天数从1(星期一)到7(星期日)编号。某些日历可能支持其他天(例如闰日)的更高数字。如果day
数字不可识别,则返回空字符串。
名称以在指定locale
中通常用于完整日期的形式返回;format
确定它应如何完全表达(即缩写的程度)。