2017-05-09 83 views
1

我該如何排除國家法定節假日? 我用下面的代碼,以排除週日我該如何添加n天到排除國定假日的日期odoo

@api.depends('date_request', 'Nbr_days') 
 
    def _compute_date_result(self): 
 
    
 
     for record in self: 
 
      business_days_to_add = record.Nbr_days 
 
      current_date = fields.Datetime.from_string(record.date_request) 
 
      while business_days_to_add > 0: 
 
       current_date += timedelta(days=1) 
 
       weekday = current_date.weekday() 
 
       if weekday >= 6: 
 
        continue 
 
       business_days_to_add -= 1 
 
      record.date_perform=current_date

回答

0

由於假期通常跨越整個日期,您可以執行以下操作:

holiday_dates = set([dt.date() for dt in Holidays]) 
# And a few lines later in your exclusion check 
# while ... 
    if weekday >= 6 or current_date.date() in holiday_dates: 
     continue 
+0

,每年我應該改變的假期? – Borealis

+0

如果有假期改變日期,或假期被添加/刪除 - 那麼是的。否則,您可以修改代碼來僅比較月份和日期部分。 – dgeorgiev