我在Python中有这个列表。
@Bean
public LocalValidatorFactoryBean localValidatorFactoryBean() {
return new LocalValidatorFactoryBean();
}
@Bean
public ValidatingMongoEventListener validatingMongoEventListener(LocalValidatorFactoryBean lfb) {
return new ValidatingMongoEventListener(lfb);
}
我想从此列表中减去值。例如,dates= [6,15],[8,24]
为[6,15]
,因此我想将[month,day]
减去15
。我希望得到10
,之后这个操作会重复,我希望得到这样的[6,5]
。我该怎么做这个代码?
答案 0 :(得分:1)
您可能希望使用内置日期时间和第三方dateutil模块。请注意,您需要指定一年,因为有些年份有不同长度的月份(即闰年) - parse
将假设当前年份:
import datetime.date as dt
from dateutil.parser import parse
from dateutil.relativedelta import relativedelta
print(parse('6/15') - relativedelta(days=10))
答案 1 :(得分:0)
您应该使用内置的datetime.datetime
和datetime.timedelta
对象以简化的方式实现此目标:
>>> from datetime import datetime, timedelta
>>> my_date_list = [6, 15] # your current list in "[month, day]" format
# create `datetime` object using above values
# since you don't care about year, using 2018 for demonstration. But you need this.
>>> datetime_obj = datetime(month=my_date_list[0], day=my_date_list[1], year=2018)
# timedelta object for the number of days you want the diff
>>> diff = timedelta(days=20)
# New datetime object
>>> new_datetime_obj = datetime_obj - diff
>>> new_datetime_obj
datetime.datetime(2018, 5, 26, 0, 0)
# You desired format list of [month, day]
>>> [new_datetime_obj.month, new_datetime_obj.day]
[5, 26]
PS:您甚至不应该将您的初始和最终列表存储为" [月,日]"格式。只需存储datetime
个对象列表,并在需要的地方使用它。 new_datetime_obj.month
产生月份,new_datetime_obj.day
产生当天
注意:您必须考虑代码中的年份。在计算和计算天数时有必要。例如,闰年和非闰年的2月计算得出不同的结果。