2016-04-20 6 views
0

Я хочу рассчитать оставшиеся дни до определенной даты, которые необходимо ввести в ту же форму представления.рассчитать оставшиеся дни до указанной даты в Odoo 8

class saisir_soumission(osv.osv): 
    _name='saisir.soumission' 

    def compa_date(self,cr,uid,ids,args,fields,context=None):  
     r = {} 
     date_format = '%d-%m-%Y' 
     joining_date = 'Date_ouv_pli' 
     current_date = (datetime.today()).strftime(date_format) 
     d1 = datetime.strptime(joining_date, date_format).date() 
     d2 = datetime.strptime(current_date, date_format).date() 
     r = str((d2-d1).days + 1) 
     return r 

    _columns = { 
     'NumOffre' : fields.char('N° Offre'), 
     'organisme_s' : fields.char('Organisme'), 
     'caution' : fields.float('Caution'), 
     'Date_ouv_pli' : fields.date('Date Ouverture Plis'), #field to be entered 
     'observation_d' : fields.text('Observation'), 
     'compar' : fields.function(compa_date,string='Jours Restants'), 
     } 

ответ

0

вы можете использовать встроенный dateime, timedelta object

>>> import datetime 
>>> diff = d1 - datetime.date.today() 
>>> diff.days 
0

Ниже я отправляю общее решение для вашей ссылки

 from dateutil import relativedelta 
     from datetime import datetime 
     datetime_fomat = '%Y-%m-%d %H:%M:%S' 
     end="any future date in string"########## 
     current =datetime.now().replace(microsecond=0) 
     end = datetime.strptime(str(end), datetime_fomat) 
     diff = relativedelta.relativedelta(end, current) 

     day=diff.days >=1 and diff.days or 0 
     hour=diff.hours >=1 and diff.hours or 0 
     minute=diff.minutes>=1 and diff.minutes or 0 
     second=diff.seconds>=1 and diff.seconds or 0 
     print "{day}days:{hour}hours:{minute}minutes: {second}seconds".format(day=day,hour=hour,minute=minute,second=second) 

Надежда это может помочь вам.

0

здесь решение

class saisir_soumission(osv.osv): 
 
    _name='saisir.soumission' 
 

 
    def compa_date(self,cr,uid,ids,args,fields,context=None):  
 
     r = {} 
 
     date_format = "%Y-%m-%d %H:%M:%S" 
 
     joining_date = 'Date_ouv_pli' 
 
     current_date = fields.datetime.now() 
 
     d1 = datetime.strptime(joining_date, date_format) 
 
     d2 = datetime.strptime(current_date, date_format) 
 
     days = (d2 - d1).days 
 
     return days 
 

 
    _columns = { 
 
     'NumOffre' : fields.char('N° Offre'), 
 
     'organisme_s' : fields.char('Organisme'), 
 
     'caution' : fields.float('Caution'), 
 
     'Date_ouv_pli' : fields.date('Date Ouverture Plis'), #field to be entered 
 
     'observation_d' : fields.text('Observation'), 
 
     'compar' : fields.function(compa_date,string='Jours Restants'), 
 
    
 
     }

+0

Спасибо друг, я буду стараться – khelifa

Смежные вопросы