我试图使用Pythoncalendar.monthrange
函数打印一个月的天数。在
我有一个脚本,通过cron在每个月的1号运行,需要返回上个月的天数。 我还使用arrow模块来更好地处理和格式化我在脚本中使用的任何日期/时间调用。在
因为我需要找出前一个月的天数,它只比运行脚本的日期晚一天,所以我通过timedelta减去1。在
这是我的代码的一个非常精简的版本,但这是工作部分:
import calendar
import arrow
import time
from datetime import date, timedelta
yesterday = date.today() - timedelta(1)
cYfDate = yesterday.strftime('%Y.%m.%d')
cYfDateY = arrow.get(cYfDate).format('YYYY')
cYfDateM = arrow.get(cYfDate).format('M')
print cYfDateY
print cYfDateM
print calendar.monthrange(cYfDateY + ',' + cYfDateM)[1]
前两个打印行工作正常,显示正确的年和月,但第三个打印会抛出错误:
^{pr2}$我不明白为什么它告诉我只有一个论点,而那里显然有两个论点。在
更改
print calendar.monthrange(cYfDateY + ',' + cYfDateM)[1]
到`print日历.monthrange(cYfDateY,cYfDateM)[1]
calendar.monthrange()
接受2个参数,year
和{calendar.monthrange(year, month)
直接的问题是
monthrange
需要两个参数;但是由于某种原因,您将使用您拥有的两个参数并将它们连接到一个字符串中。不要这样做;只要传递参数:不过,剧本的其余部分也很奇怪。您正确地计算了昨天的日期,但随后将其转换为字符串,然后使用第三方
^{pr2}$arrow
库从该字符串中获取月份和日期。这根本行不通,因为现在这些都是弦了。你为什么这么做?为什么不直接得到你已经拥有的月份和日期呢?在相关问题 更多 >
编程相关推荐