move the wiki content into the main site
(keeping the current filenames and Obsidian pseudo-compatibility)
This commit is contained in:
114
src/Time-tracking.md
Normal file
114
src/Time-tracking.md
Normal file
@@ -0,0 +1,114 @@
|
||||
You can track time in the usual journal format. Eg with h/ledger, using non-balanced postings for convenience:
|
||||
|
||||
```journal
|
||||
# a.journal
|
||||
2022-01-01
|
||||
(time:work) 2h
|
||||
(time:rest) 1.5h
|
||||
(time:play) 2.5h
|
||||
```
|
||||
|
||||
Strict version, disallowing undeclared accounts/commodities:
|
||||
|
||||
```journal
|
||||
# b.journal
|
||||
commodity h
|
||||
account time:work
|
||||
account time:rest
|
||||
account time:play
|
||||
|
||||
2022-01-01
|
||||
(time:work) 2h
|
||||
(time:rest) 1.5h
|
||||
(time:play) 2.5h
|
||||
```
|
||||
```cli
|
||||
$ ledger -f b.journal --pedantic bal
|
||||
```
|
||||
```cli
|
||||
$ hledger -f b.journal -s bal
|
||||
```
|
||||
|
||||
With beancount (always strict):
|
||||
|
||||
```beancount
|
||||
# a.beancount
|
||||
2000-01-01 open Equity:Time
|
||||
2000-01-01 open Expenses:Time:Work
|
||||
2000-01-01 open Expenses:Time:Rest
|
||||
2000-01-01 open Expenses:Time:Play
|
||||
|
||||
2022-01-01 txn
|
||||
Expenses:Time:Work 2 HRS
|
||||
Expenses:Time:Rest 1.5 HRS
|
||||
Expenses:Time:Play 2.5 HRS
|
||||
Equity:Time
|
||||
```
|
||||
```cli
|
||||
$ bean-report a.beancount bal
|
||||
```
|
||||
|
||||
Or, there is timeclock format (ledger, hledger), which tracks clock-in/clock-out times:
|
||||
|
||||
```timeclock
|
||||
# a.timeclock (hledger), or can be inlined in your main journal (ledger)
|
||||
i 2009/03/27 09:00:00 projects:a
|
||||
o 2009/03/27 17:00:34
|
||||
i 2009/03/31 22:21:45 personal:reading:online
|
||||
o 2009/04/01 02:00:34
|
||||
i 2009/04/02 09:00:00 projects:b
|
||||
o 2009/04/02 17:00:34
|
||||
```
|
||||
|
||||
Or timedot format (hledger), for approximate/visual time logging (each dot is a quarter hour):
|
||||
|
||||
```timedot
|
||||
# a.timedot
|
||||
|
||||
2016/2/1
|
||||
fos:haskell ....
|
||||
biz:research .
|
||||
inc:client1 .... .... .... .... .... ....
|
||||
|
||||
2016-02-01
|
||||
biz:research .... ..
|
||||
fos:hledger .... .... ....
|
||||
fos:ledger 0.25
|
||||
fos:haskell .5
|
||||
inc:client1 2
|
||||
```
|
||||
|
||||
CSV (SSV, TSV) is the most compact format. Here's a one-line-per-day TSV setup with hledger:
|
||||
|
||||
```tsv
|
||||
# a.tsv
|
||||
2022-01-01 2 1.5 2.5
|
||||
2022-01-02 0 3 0
|
||||
```
|
||||
```rules
|
||||
# a.tsv.rules
|
||||
skip 1
|
||||
fields date, work, rest, play
|
||||
amount1 %work h
|
||||
amount2 %rest h
|
||||
amount3 %play h
|
||||
account1 (time:work)
|
||||
account2 (time:rest)
|
||||
account3 (time:play)
|
||||
```
|
||||
```cli
|
||||
$ hledger -f a.tsv bal -D
|
||||
```
|
||||
|
||||
## See also
|
||||
|
||||
- [Ledger: Time Keeping](https://www.ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping)
|
||||
- [hledger: Timeclock format](https://hledger.org/hledger.html#timeclock-format)
|
||||
- [hledger: Timedot format](https://hledger.org/hledger.html#timedot-format)
|
||||
- [Timetracking and billing with (h)ledger](https://github.com/anarcat/ledger-timetracking)
|
||||
- [hledger: Converting time to money](https://hledger.org/time-to-money.html)
|
||||
- [hledger: Time planning](https://hledger.org/time-planning.html)
|
||||
- [time tracking tools](#time-logging)
|
||||
- [reddit: Ledger CLI time tracking and transaction account linking](https://www.reddit.com/r/plaintextaccounting/comments/e2sd0k/ledger_cli_time_tracking_and_transaction_account/)
|
||||
- [arbeitszeit.py](https://github.com/haansn08/arbeitszeit.py)
|
||||
|
||||
Reference in New Issue
Block a user