timedot: allow minutes to be logged as Nm
This commit is contained in:
parent
bf79c7c5ac
commit
5cdb60b69b
@ -5,7 +5,9 @@ Example:
|
||||
|
||||
@
|
||||
#DATE
|
||||
#ACCT DOTS # Each dot represents 15m, spaces are ignored
|
||||
#ACCT DOTS # Each dot represents 15m, spaces are ignored
|
||||
#ACCT 8 # numbers with or without a following h represent hours
|
||||
#ACCT 5m # numbers followed by m represent minutes
|
||||
|
||||
# on 2/1, 1h was spent on FOSS haskell work, 0.25h on research, etc.
|
||||
2/1
|
||||
@ -126,16 +128,26 @@ timedotentryp = do
|
||||
return t
|
||||
|
||||
timedotdurationp :: JournalParser m Quantity
|
||||
timedotdurationp = try timedotnumberp <|> timedotdotsp
|
||||
timedotdurationp = try timedotminutesp <|> try timedothoursp <|> timedotdotsp
|
||||
|
||||
-- | Parse a duration written as a decimal number of hours (optionally followed by the letter h).
|
||||
-- | Parse a duration written as a decimal number of minutes followed by the letter m.
|
||||
-- @
|
||||
-- 5m
|
||||
-- @
|
||||
timedotminutesp :: JournalParser m Quantity
|
||||
timedotminutesp = do
|
||||
(q, _, _, _) <- lift numberp
|
||||
char 'm'
|
||||
lift (many spacenonewline)
|
||||
return $ q / 60
|
||||
|
||||
-- | Parse a duration written as a decimal number of hours optionally followed by the letter h.
|
||||
-- @
|
||||
-- 1.5h
|
||||
-- @
|
||||
timedotnumberp :: JournalParser m Quantity
|
||||
timedotnumberp = do
|
||||
timedothoursp :: JournalParser m Quantity
|
||||
timedothoursp = do
|
||||
(q, _, _, _) <- lift numberp
|
||||
lift (many spacenonewline)
|
||||
optional $ char 'h'
|
||||
lift (many spacenonewline)
|
||||
return q
|
||||
|
||||
@ -28,15 +28,19 @@ pairs, one per line.
|
||||
Dates are hledger\-style simple dates (see hledger_journal(5)).
|
||||
Categories are hledger\-style account names, optionally indented.
|
||||
There must be at least two spaces between the category and the quantity.
|
||||
Quantities can be written in two ways:
|
||||
Quantities can be written in several ways:
|
||||
.IP "1." 3
|
||||
a series of dots (period characters).
|
||||
Each dot represents "a quarter" \- eg, a quarter hour.
|
||||
Spaces can be used to group dots into hours, for easier counting.
|
||||
a series of dots (.).
|
||||
Each dot represents one quarter unit \- eg, a quarter hour.
|
||||
Spaces may optionally be used to group dots, for easier counting.
|
||||
.IP "2." 3
|
||||
a number (integer or decimal), representing "units" \- eg, hours.
|
||||
A good alternative when dots are cumbersome.
|
||||
(A number also can record negative quantities.)
|
||||
an integral or decimal number optionally followed by the letter h
|
||||
represents whole units \- eg, hours.
|
||||
Numbers may be more convenient for large quantities (and can also record
|
||||
negative quantities).
|
||||
.IP "3." 3
|
||||
an integral or decimal number followed by the letter m represents 1/60th
|
||||
units \- eg, minutes.
|
||||
.PP
|
||||
Blank lines and lines beginning with #, ; or * are ignored.
|
||||
An example:
|
||||
|
||||
@ -33,15 +33,18 @@ with a date, and is followed by category/quantity pairs, one per line.
|
||||
Dates are hledger-style simple dates (see hledger_journal(5)).
|
||||
Categories are hledger-style account names, optionally indented. There
|
||||
must be at least two spaces between the category and the quantity.
|
||||
Quantities can be written in two ways:
|
||||
Quantities can be written in several ways:
|
||||
|
||||
1. a series of dots (period characters). Each dot represents "a
|
||||
quarter" - eg, a quarter hour. Spaces can be used to group dots
|
||||
into hours, for easier counting.
|
||||
1. a series of dots (.). Each dot represents one quarter unit - eg, a
|
||||
quarter hour. Spaces may optionally be used to group dots, for
|
||||
easier counting.
|
||||
|
||||
2. a number (integer or decimal), representing "units" - eg, hours. A
|
||||
good alternative when dots are cumbersome. (A number also can
|
||||
record negative quantities.)
|
||||
2. an integral or decimal number optionally followed by the letter h
|
||||
represents whole units - eg, hours. Numbers may be more convenient
|
||||
for large quantities (and can also record negative quantities).
|
||||
|
||||
3. an integral or decimal number followed by the letter m represents
|
||||
1/60th units - eg, minutes.
|
||||
|
||||
Blank lines and lines beginning with #, ; or * are ignored. An
|
||||
example:
|
||||
|
||||
@ -31,15 +31,16 @@ A day entry begins with a date, and is followed by category/quantity pairs, one
|
||||
Dates are hledger-style [simple dates](#simple-dates) (see hledger_journal(5)).
|
||||
Categories are hledger-style account names, optionally indented.
|
||||
There must be at least two spaces between the category and the quantity.
|
||||
Quantities can be written in two ways:
|
||||
Quantities can be written in several ways:
|
||||
|
||||
1. a series of dots (period characters).
|
||||
Each dot represents "a quarter" - eg, a quarter hour.
|
||||
Spaces can be used to group dots into hours, for easier counting.
|
||||
1. a series of dots (.).
|
||||
Each dot represents one quarter unit - eg, a quarter hour.
|
||||
Spaces may optionally be used to group dots, for easier counting.
|
||||
|
||||
2. a number (integer or decimal), representing "units" - eg, hours.
|
||||
A good alternative when dots are cumbersome.
|
||||
(A number also can record negative quantities.)
|
||||
2. an integral or decimal number optionally followed by the letter h represents whole units - eg, hours.
|
||||
Numbers may be more convenient for large quantities (and can also record negative quantities).
|
||||
|
||||
3. an integral or decimal number followed by the letter m represents 1/60th units - eg, minutes.
|
||||
|
||||
Blank lines and lines beginning with #, ; or * are ignored.
|
||||
An example:
|
||||
|
||||
@ -25,17 +25,20 @@ FILE FORMAT
|
||||
Dates are hledger-style simple dates (see hledger_journal(5)). Cate-
|
||||
gories are hledger-style account names, optionally indented. There
|
||||
must be at least two spaces between the category and the quantity.
|
||||
Quantities can be written in two ways:
|
||||
Quantities can be written in several ways:
|
||||
|
||||
1. a series of dots (period characters). Each dot represents "a quar-
|
||||
ter" - eg, a quarter hour. Spaces can be used to group dots into
|
||||
hours, for easier counting.
|
||||
1. a series of dots (.). Each dot represents one quarter unit - eg, a
|
||||
quarter hour. Spaces may optionally be used to group dots, for eas-
|
||||
ier counting.
|
||||
|
||||
2. a number (integer or decimal), representing "units" - eg, hours. A
|
||||
good alternative when dots are cumbersome. (A number also can
|
||||
record negative quantities.)
|
||||
2. an integral or decimal number optionally followed by the letter h
|
||||
represents whole units - eg, hours. Numbers may be more convenient
|
||||
for large quantities (and can also record negative quantities).
|
||||
|
||||
Blank lines and lines beginning with #, ; or * are ignored. An exam-
|
||||
3. an integral or decimal number followed by the letter m represents
|
||||
1/60th units - eg, minutes.
|
||||
|
||||
Blank lines and lines beginning with #, ; or * are ignored. An exam-
|
||||
ple:
|
||||
|
||||
# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
|
||||
@ -79,7 +82,7 @@ FILE FORMAT
|
||||
------------++----------------------------------------
|
||||
|| 7.75 2.25 8.00
|
||||
|
||||
I prefer to use period for separating account components. We can make
|
||||
I prefer to use period for separating account components. We can make
|
||||
this work with an account alias:
|
||||
|
||||
2016/2/4
|
||||
@ -98,7 +101,7 @@ FILE FORMAT
|
||||
|
||||
|
||||
REPORTING BUGS
|
||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||
or hledger mail list)
|
||||
|
||||
|
||||
@ -112,7 +115,7 @@ COPYRIGHT
|
||||
|
||||
|
||||
SEE ALSO
|
||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||
dot(5), ledger(1)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user