Python 如何比较两天之间的天数并计算Openerp中的天数?
我有一门课叫“人力资源公司假期” 在hr\U holiday模块本身中,还有一个名为“hr\U holidays”的类,该类中有一个类似的函数Python 如何比较两天之间的天数并计算Openerp中的天数?,python,openerp,openerp-7,Python,Openerp,Openerp 7,我有一门课叫“人力资源公司假期” 在hr\U holiday模块本身中,还有一个名为“hr\U holidays”的类,该类中有一个类似的函数 def _get_number_of_days(self, date_from, date_to): """Returns a float equals to the timedelta between two dates given as string.""" DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
def _get_number_of_days(self, date_from, date_to):
"""Returns a float equals to the timedelta between two dates given as string."""
DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
from_dt = datetime.datetime.strptime(date_from, DATETIME_FORMAT)
to_dt = datetime.datetime.strptime(date_to, DATETIME_FORMAT)
timedelta = to_dt - from_dt
diff_day = timedelta.days + float(timedelta.seconds) / 86400
return diff_day
如何计算从_dt到_dt之间的天数,同时避免公司假日和周末
我已经尝试了贝娄函数,唯一得到的是一个错误,请帮助我
def _get_number_of_days(self, date_from, date_to):
"""Returns a float equals to the timedelta between two dates given as string."""
values = {}
#comp_holidays = self.pool.get('company.holidays').browse(values['company_holiday_id']).date
#print comp_holidays
DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
incre=timedelta(day=1)
from_dt = datetime.datetime.strptime(date_from, DATETIME_FORMAT)
to_dt = datetime.datetime.strptime(date_to, DATETIME_FORMAT)
from_date=from_dt
to_date=to_dt
diff=0
holi=0
while from_dt <= to_dt:
holiday_id=hr_holidays.search(self, cr, uid, from_date,context=context)
holiday_day=hr_holidays.browse(cr, uid, holiday_id, context=context).date
if from_date == holiday_day:
holi += 1
from_date += incre
else:
from_date += incre
timedelta = to_dt - from_dt + holi
diff_day = timedelta.days + float(timedelta.seconds) / 86400
def\u获取天数(self、date\u from、date\u to):
“”“返回一个浮点值,该值等于作为字符串给定的两个日期之间的时间差。”“”
值={}
#comp_holidays=self.pool.get('company.holidays')。浏览(值['company_holiday_id'))。日期
#打印公司假期
DATETIME_FORMAT=“%Y-%m-%d%H:%m:%S”
增量=时间增量(天=1)
from_dt=datetime.datetime.strtime(日期自,日期时间格式)
to_dt=datetime.datetime.strtime(日期至,日期时间格式)
起始日期=起始日期
截止日期=截止日期
差异=0
holi=0
而从
def _get_number_of_days(self, date_from, date_to):
"""Returns a float equals to the timedelta between two dates given as string."""
values = {}
#comp_holidays = self.pool.get('company.holidays').browse(values['company_holiday_id']).date
#print comp_holidays
DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
incre=timedelta(day=1)
from_dt = datetime.datetime.strptime(date_from, DATETIME_FORMAT)
to_dt = datetime.datetime.strptime(date_to, DATETIME_FORMAT)
from_date=from_dt
to_date=to_dt
diff=0
holi=0
while from_dt <= to_dt:
holiday_id=hr_holidays.search(self, cr, uid, from_date,context=context)
holiday_day=hr_holidays.browse(cr, uid, holiday_id, context=context).date
if from_date == holiday_day:
holi += 1
from_date += incre
else:
from_date += incre
timedelta = to_dt - from_dt + holi
diff_day = timedelta.days + float(timedelta.seconds) / 86400