# Cookbook/Dates And Time

(Difference between revisions)
Jump to: navigation, search

## 1 Finding today's date

```import Data.Time

c <- getCurrentTime                  --> 2009-04-21 14:25:29.5585588 UTC
(y,m,d) = toGregorian \$ utctDay c    --> (2009,4,21)```

## 2 Adding to or subtracting from a date

Problem Solution Examples
adding days to a date addDays
```import Date.Time
a = fromGregorian 2009 12 31    --> 2009-12-31
b = addDays 1 a                 --> 2010-01-01```
subtracting days from a date addDays
```import Date.Time
a = fromGregorian 2009 12 31    --> 2009-12-31
b = addDays (-7) a              --> 2009-12-24```

## 3 Difference of two dates

Problem Solution Examples
calculating the difference of two dates diffDays
```import Date.Time
a = fromGregorian 2009 12 31    --> 2009-12-31
b = fromGregorian 2010 12 31    --> 2010-12-31
diffDays b a                    --> 365```

## 4 CPU time

Use System.CPUTime.getCPUTime to get the CPU time in picoseconds.

You can time a computation like this

```getCPUTimeDouble :: IO Double
getCPUTimeDouble = do t <- System.CPUTime.getCPUTime; return ((fromInteger t) * 1e-12)

main = do
t1 <- getCPUTimeDouble
print (fib 30)
t2 <- getCPUTimeDouble
print (t2-t1)```