# Cookbook/Dates And Time

### From HaskellWiki

< Cookbook(Difference between revisions)

m (→Difference of two dates: typo) |
|||

(One intermediate revision by one user not shown) | |||

Line 1: | Line 1: | ||

− | = Finding today's date = | + | == Finding today's date == |

<haskell> | <haskell> | ||

Line 8: | Line 8: | ||

</haskell> | </haskell> | ||

− | = Adding to or subtracting from a date = | + | == Adding to or subtracting from a date == |

{| class="wikitable" | {| class="wikitable" | ||

Line 33: | Line 33: | ||

|} | |} | ||

− | = Difference of two dates = | + | == Difference of two dates == |

{| class="wikitable" | {| class="wikitable" | ||

Line 46: | Line 46: | ||

import Date.Time | import Date.Time | ||

a = fromGregorian 2009 12 31 --> 2009-12-31 | a = fromGregorian 2009 12 31 --> 2009-12-31 | ||

− | b = fromGregorian 2010 12 | + | b = fromGregorian 2010 12 31 --> 2010-12-31 |

diffDays b a --> 365 | diffDays b a --> 365 | ||

</haskell> | </haskell> | ||

|} | |} | ||

− | = CPU time = | + | == CPU time == |

Use [http://www.haskell.org/ghc/docs/latest/html/libraries/base/System-CPUTime.html#v%3AgetCPUTime System.CPUTime.getCPUTime] to get the CPU time in picoseconds. | Use [http://www.haskell.org/ghc/docs/latest/html/libraries/base/System-CPUTime.html#v%3AgetCPUTime System.CPUTime.getCPUTime] to get the CPU time in picoseconds. | ||

## Revision as of 17:45, 2 August 2009

## Contents |

## 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)