source: tags/ORCHIDEE_OL/Utilitaire/calend365.py @ 6

Last change on this file since 6 was 6, checked in by orchidee, 14 years ago

import first tag equivalent to CVS orchidee_1_9_5 + OOL_1_9_5

File size: 1.4 KB
Line 
1##################################################################
2#PIEDLOUP Sebastien
3#sebastien.piedloup@ipsl.jussieu.fr
4#juillet 2003
5##################################################################
6
7##################################################################
8#Module qui definit un calendrier de 365 jours et qui renvoie une date valide
9##################################################################
10
11
12
13#!/usr/bin/env python
14
15#Tableau definissant la duree des mois dans un calendrier de 365 jours
16tab=[31,28,31,30,31,30,31,31,30,31,30,31]
17
18##################################################################
19#Fonction qui se charge des mois et jours negatifs ou nul
20##################################################################
21def pre(y,m,d):
22   #print "1",y,m,d
23   if m==0:
24       return pre(y-1,12,d)
25   if m<=0:
26       return pre(y-abs((m-1)/12),abs((m-1)%12+1),d)
27   if d==0:
28       return pre(y,m-1,tab[(m-2)%12])
29   if d<0:
30       return pre(y-abs((d-1)/365),m,abs((d-1)%365+1))
31   return date_365d(y,m,d)
32                 
33##################################################################
34#Fonction qi renvoit une date valide sur un calendrier de 365 jours
35##################################################################
36def date_365d(y,m,d):
37   #print "2",y,m,d
38   mm=m-1
39   if mm/12:
40       return date_365d(y+(mm/12),mm%12+1,d)
41   if (d-1)/tab[mm]:
42       return date_365d(y,m+1,d-tab[mm])
43   return y,m,d
44
45
46
47#print pre(1987,1,365)
48
Note: See TracBrowser for help on using the repository browser.