1
0

move the wiki content into the main site

(keeping the current filenames and Obsidian pseudo-compatibility)
This commit is contained in:
Simon Michael
2023-11-27 19:24:02 -10:00
parent 6f67b1bc2c
commit 60f7c63f04
50 changed files with 1940 additions and 16 deletions

114
src/Time-tracking.md Normal file
View 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)