Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Handle any case of short day: Mon, mon, MON, etc.
Just because it'll be easier for me to use lowercase. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | origin/issue1 | trunk | master |
Files: | files | file ages | folders |
SHA3-256: |
386fcc875a9b16b4bc6fea7383b3a55e |
User & Date: | atomicules 2020-05-15 08:29:28 |
Context
2020-05-15
| ||
11:56 |
Hlint changes
Had to hlint on another computer... cannot get it to install on NetBSD check-in: 9a429ebc79 user: atomicules tags: master, origin/issue1, trunk | |
08:29 |
Handle any case of short day: Mon, mon, MON, etc.
Just because it'll be easier for me to use lowercase. check-in: 386fcc875a user: atomicules tags: master, origin/issue1, trunk | |
2020-05-14
| ||
20:47 |
Support using "Mon", "Tue", etc aswell as "today", "tomorrow"
Works well, but not having hlint means my code is messy. Could do with a | |
Changes
Changes to haskerdeux.hs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | {-# LANGUAGE DeriveDataTypeable #-} --HaskerDeux import System.Environment import System.IO import System.IO.Error import System.Process import Data.List import Data.List.Split --need to install import Data.Map import Control.Monad import Control.Applicative import Data.Maybe import Text.JSON --need to install for JSON | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | {-# LANGUAGE DeriveDataTypeable #-} --HaskerDeux import System.Environment import System.IO import System.IO.Error import System.Process import Data.Char import Data.List import Data.List.Split --need to install import Data.Map import Control.Monad import Control.Applicative import Data.Maybe import Text.JSON --need to install for JSON |
︙ | ︙ | |||
33 34 35 36 37 38 39 | main = do (date:command:argList) <- getArgs time <- getClockTime >>= toCalendarTime --https://wiki.haskell.org/Unix_tools/Date let todays_date = formatCalendarTime defaultTimeLocale "%Y-%m-%d" time let tomorrows_date = show (addDays 1 $ read todays_date::Data.Time.Day) let todos_date | date == "today" = todays_date | date == "tomorrow" = tomorrows_date | | | | | | | | | | | 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 | main = do (date:command:argList) <- getArgs time <- getClockTime >>= toCalendarTime --https://wiki.haskell.org/Unix_tools/Date let todays_date = formatCalendarTime defaultTimeLocale "%Y-%m-%d" time let tomorrows_date = show (addDays 1 $ read todays_date::Data.Time.Day) let todos_date | date == "today" = todays_date | date == "tomorrow" = tomorrows_date | (Data.List.map toLower date) `elem` ["mon", "tue", "wed", "thu", "fri", "sat", "sun"] = parseday ((Data.List.map toLower date), todays_date) | otherwise = date when ((command `elem` ["todos"] && Data.List.null argList) || (command `elem` ["new", "crossoff", "putoff", "delete", "nextweek"] && length argList == 1) || (command == "moveto" && length argList == 2)) $ do token <- login dispatch command (token, todos_date:argList) parseday (future_day, todays_date) = do let days_map = fromList [ ("mon", 0) , ("tue", 1) , ("wed", 2) , ("thu", 3) , ("fri", 4) , ("sat", 5) , ("sun", 6)] let time_from_string = readTime defaultTimeLocale "%Y-%m-%d" todays_date::Data.Time.Day let todays_day = Data.List.map toLower $ formatTime defaultTimeLocale "%a" time_from_string let todays_day_num = fromJust $ Data.Map.lookup todays_day days_map let future_day_num = fromJust $ Data.Map.lookup future_day days_map let days_to_add | future_day_num >= todays_day_num = future_day_num - todays_day_num | otherwise = (7 + future_day_num) - todays_day_num show (addDays days_to_add $ read todays_date::Data.Time.Day) |
︙ | ︙ |