/
BasicFipaDateTime.py
126 lines (97 loc) · 4.49 KB
/
BasicFipaDateTime.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# -*- coding: utf-8 -*-
from datetime import datetime
class BasicFipaDateTime:
"""
Help class to operate dates and times
"""
def __init__(self, date=None):
"""
constructor
date parameter can be suplied
"""
if (date is None):
self.fromDateTime(datetime.now())
else:
if isinstance(date, str) is True:
self.fromString(date)
elif isinstance(date, datetime) is True:
self.fromDateTime(date)
def fromDateTime(self, dt):
"""
inits the object with another BasicFipaDateTime class
"""
self.calendar = dt
def fromString(self, string):
"""
loads the date and time from a string
"""
if string is not None and string != "":
#print "string: " + str(string)
year = int(string[0:4])
month = int(string[4:6])
day = int(string[6:8])
#tz = str[8]
hour = int(string[9:11])
minute = int(string[11:13])
second = int(string[13:15])
milli = int(string[15:18])
self.calendar = datetime(year, month, day, hour, minute, second, milli)
return True
else:
return False
def getYear(self):
return self.calendar.year
def setYear(self, year):
self.calendar = datetime(year, self.getMonth(), self.getDay(), self.getHour(), self.getMinutes(), self.getSeconds(), self.getMilliseconds(), self.getTypeDesignator())
def getMonth(self):
return self.calendar.month
def setMonth(self, month):
self.calendar = datetime(self.calendar.year, month, self.calendar.day, self.calendar.hour, self.calendar.minute, self.calendar.second, self.calendar.microsecond, self.calendar.tzinfo)
def getDay(self):
return self.calendar.day
def setDay(self, day):
self.calendar = datetime(self.calendar.year, self.calendar.month, day, self.calendar.hour, self.calendar.minute, self.calendar.second, self.calendar.microsecond, self.calendar.tzinfo)
def getHour(self):
return self.calendar.hour
def setHour(self, hour):
self.calendar = datetime(self.calendar.year, self.calendar.month, self.calendar.day, hour, self.calendar.minute, self.calendar.second, self.calendar.microsecond, self.calendar.tzinfo)
def getMinutes(self):
return self.calendar.minute
def setMinutes(self, minute):
self.calendar = datetime(self.calendar.year, self.calendar.month, self.calendar.day, self.calendar.hour, minute, self.calendar.second, self.calendar.microsecond, self.calendar.tzinfo)
def getSeconds(self):
return self.calendar.second
def setSeconds(self, second):
self.calendar = datetime(self.calendar.year, self.calendar.month, self.calendar.day, self.calendar.hour, self.calendar.minute, second, self.calendar.microsecond, self.calendar.tzinfo)
def getMilliseconds(self):
return self.calendar.microsecond
def setMilliseconds(self, milli):
self.calendar = datetime(self.calendar.year, self.calendar.month, self.calendar.day, self.calendar.hour, self.calendar.minute, self.calendat.second, microsecond, self.calendar.tzinfo)
def getTypeDesignator(self):
return self.calendar.tzinfo
def setTypeDesignator(self, tzinfo):
#self.calendar = datetime(self.calendar.year,self.calendar.month, self.calendar.day,self.calendar.hour,self.calendar.minute,self.calendat.second,self.calendar.microsecond,tzinfo)
pass
def paddedInt(self, size, val):
res = str(val)
while len(res) < size:
res = '0' + res
return str(res)
def __str__(self):
"""
returns a printable version of the object
"""
str_date = str(self.getYear()) + self.paddedInt(2, self.getMonth()) + self.paddedInt(2, self.getDay()) + "T"
str_date = str_date + str(self.paddedInt(2, self.getHour()))
str_date = str_date + str(self.paddedInt(2, self.getMinutes())) + str(self.paddedInt(2, self.getSeconds())) + str(self.paddedInt(3, self.getMilliseconds()))
return str_date
def getTime(self):
"""
returns a printable version of the object
"""
return self.__str__()
def getDate(self):
"""
returns a printable version of the object
"""
return self.__str__()