Python 如何比较两天之间的天数并计算Openerp中的天数?

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"

我有一门课叫“人力资源公司假期”

在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"
    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