请我需要你的帮助,我正在尝试编写一个 PYTHON 代码,该代码使用一个名为 calcExcelDate 的已定义函数来实现一些等效于指定日期的 excel 日期等式:
- 年(从 1900 到 9999 的 4 位整数);
- 月(从 1 到 12 的 1 或 2 位整数);
- 日(从 1 到 31 的 1 或 2 位整数,取决于月份)。
我定义了函数并使用了 3 个循环来指定上述给定的年、月和日范围。但是如何使用该函数来实现以下方程:
y_2 = year - 1900
em = math.floor((14 - month) / 12)
y_3 = y_2 - em
m_2 = month + 12 * em
I_ = 1 + min(y_3, 0) + math.floor(y_3 / 4) - math.floor(y_3 / 100) + math.floor((y_3 + 300) / 400)
d_1 = math.floor(-1.63 + (m_2 - 1) * 30.6)
d_2 = day + y_3 * 365 + I_ + d_1
到目前为止我的代码:
import time
import math
DAYS = ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
FULL_MONTHS = ("January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December")
mm_ = tuple(str(date) for date in range(2013-10-17, 2100-01-01)) # a tuple of character strings containing dates in the date range Excel supports,
# such as ("2013-Oct-17", "2100-01-01")
print mm_
def calcExcelDate(year, month, day):
for year in range(1900, 10000):
for month in range(1, 13):
for day in range(1, 32):
y_2 = year - 1900
em = math.floor((14 - month) / 12)
y_3 = y_2 - em
m_2 = month + 12 * em
I_ = 1 + min(y_3, 0) + math.floor(y_3 / 4) - math.floor(y_3 / 100)
+ math.floor((y_3 + 300) / 400)
d_1 = math.floor(-1.63 + (m_2 - 1) * 30.6)
d_2 = day + y_3 * 365 + I_ + d_1
xx_ = calcExcelDate(2010, 10, 1)
print xx_