To return expected results, you can:
Reduce the number of search terms.
Each term you use focuses the search further.
Check your spelling.
A single misspelled or incorrectly typed term can change your result.
Try substituting synonyms for your original terms.
For example, instead of searching for "java classes", try "java training"
Did you search for an IBM acquired or sold product ?
If so, follow the appropriate link below to find the content you need.
IBM i
简化闰年
现在,你可能已经听说今年是闰年。你对闰年是什么和为什么有闰年也有很好的理解。但是,如果你没有听说
2012
年是闰年,或者手边没有一个日历,你知道如何确定哪些年的二月会多一天吗?如果你的答案是“这很简单!把年份除以
4
,如果没有余数,那么它是闰年”。大部分的时间,你是正确的
......
但是,闰年还有比这更多的东西。
我们需要闰年来保持我们的日历与地球绕太阳的公转一致。在公历中,一般年份由
365
天组成。但地球围绕太阳一圈所需的实际时间是
365.2422
天。对于两个闰年之间的年份,每年只有
365
天,
比实际时间短了大约
6
小时。因此,使用四年一次的
366
天的闰年来“赶上”这三年的不足时间。然而,每年的不足时间不是刚刚好
6
个小时。它每年约比
6
小时少
11
分钟。所以,最终,这个时间差也需要被考虑。
为了消除每
4
年中增加的额外部分,公历会跳过被
100
整除但不能被
400
整除的年,不把他们设为闰年。
例如,
1900
年,
2100
年和
2200
不是闰年,但
2000
年和
2400
年是闰年。
IBM i
操作系统使用同样的方法来为你确定哪些年有
365
天,哪些年有
366
天,所以你不必为记住这些规则而担心。这些都是自动处理的,而不必为闰年做任何设置。但你可能想知道“那么,为什么有闰年调整的系统值(
QLEAPADJ
)?这个值又有什么用呢?”
QLEAPADJ
系统值是用来调整不同的日历系统中的关于闰年的系统日历算法。对于公历系统,闰年调整值为
0
(即不需要调整)。但是其他的日历系统可能需要进行调整。例如,泰国佛历的
2555
年是公历的
2012
年。
2555
年是闰年,但是
2555
除以
4
的余数是
3
。因此,需要为泰国佛历调整系统日历,
QLEAPADJ
系统值应设置为
3
。对于
V5R4
或更早的系统,这个系统值可以被修改为由上述计算确定的值。但是,在
V6R1
及以后的版本中,你不能再改变这个系统值。相反,系统会根据系统时区(
QTIMZON
)中定义的年偏移量(
YEAROFS
)来为你计算
QLEAPADJ
的值。
年偏移量是某个时区使用的日历系统的年份和当前的公历系统的年份之间的差值。例如,如果今年在公历是
2012
年,在泰国佛历是
2555
年,那么年偏移量(在理论上)将是
543
(
2555
减去
2012
)。但
2555
年超出了
IBM
i
操作系统支持的日期范围,所以泰国的系统将需要选择一个在支持范围的不同的基准年,如
1955
年。该系统将运行在当前公历年(
2012
年),也将设置
QTIMZON
时区对象的年偏移量为
-57
(
1955
减去
2012
)。年的最后
2
位数字仍然将会正确显示(
55
)。
然后,操作系统使用年偏移量来计算各种日期时间相关的值,如格式化日期和星期几。为了确定一个特定时区的正确日期,系统需要一个存储在世界协调时(
UTC
)的日期时间值、时区偏移量(时区与
UTC
的时差,如果需要的话,为夏令时需要调整)和年偏移量。
V6R1
中增加了年偏移量的支持。根据当前年和年偏移量,系统可以自动设定
QLEAPADJ
系统值。为了与公历闰的天数一致,可以使用公式((本年份
+
年偏移量)
/ / 4 = QLEAPADJ
)来计算闰的天数。现在,只要年偏移设置正确,星期几的计算也就会正确(例如,公历的
2012
年
2
月
15
日是星期三,泰国佛历的
1955
年
2
月
15
日应该也是星期三)。
(
V6R1
之前,由于没有年偏移量,即使
QLEAPADJ
被设置为
3
,
1955
年
2
月
15
日也会是星期二)。
日历系统处理起来是很复杂的。但是通过创建许多世界各地的最常用时区的时区对象,
IBM
i
帮你简化了这项工作,它不需要你的任何输入就可以知道哪些年有闰日,哪些年没有。
原作者: Angela Newton
译 者: Su Dong Dong