summaryrefslogtreecommitdiffstats
path: root/date.pyx
blob: 81a66f35f8ec323d044544ddae7fc789d6a7ad5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import datetime
from cpython cimport datetime as c_datetime
from date cimport JpmcdsDate, JpmcdsStringToDayCountConv

c_datetime.import_datetime()

cdef TDate pydate_to_TDate(c_datetime.date d):
    return JpmcdsDate(<long>d.year, <long>d.month, <long>d.day)

cpdef c_datetime.date TDate_to_pydate(TDate d):
    cdef TMonthDayYear date
    if JpmcdsDateToMDY(d, &date) == 0:
        return c_datetime.date_new(date.year, date.month, date.day)

cdef long dcc(str day_count) except -1:
    cdef long r
    dc_bytes = day_count.encode('utf-8')
    cdef char* dc = dc_bytes
    cdef err = JpmcdsStringToDayCountConv(<char*> dc, &r)
    if err == 0:
        return r
    else:
        raise ValueError('{0} is not a valid day count'.format(day_count))