commits
2020-10-03 | README.md: Mention contrib/ subdirectory | Sören Tempel |
2020-10-03 | tracktime-latex: Escape & characters in descriptions | Sören Tempel |
2020-10-03 | tracktime-latex: Initialize | Sören Tempel |
2020-10-03 | tracktime: Fix typo in comment | Sören Tempel |
2020-09-28 | Move utility code for determining default time format to parser | Sören Tempel |
Clone the repository to access all 34 commits.
# tracktime Small utility for tracking working hours in a plain text file. ## Usage Tracking working hours is complicated as one usually has to consider holidays and vacations for determining required working hours. This tool takes a different approach by assuming that one has to work the same amount of hours on each tracked day. Based on this assumption, the tool calculates a delta between all tracked workdays to determine the current overtime. For instance, if one has to work 8 hours each day and worked 9 hours on the 6th of January only 7 hours of work would be required on the 7th of January: $ cat ~/.tracktime 06.01.2020 0900 1800 Important work stuff 07.01.2020 1000 1700 More important work stuff $ tracktime -h 8 ~/.tracktime 06.01.2020 9h0m0s | 1h0m0s 07.01.2020 7h0m0s | 0s The last column of the `tracktime` output represents the described delta. In this example, it is zero on the 7th of January even though only 7 hours of work were done. The overtime done on the 6th of January is used to compensate for the shortage. ## Input format The input format uses four tab-separated fields. The fields have the following meaning: 1. Workday. Multiple entries for the same day are allowed. The utilized date format can be customized using the `TRACKTIME_FORMAT` environment variable. Refer to the documentation of the [Go time pkg](https://golang.org/pkg/time/#pkg-constants) for more information. 2. Starting time of the described activity without a hours/minutes separator and padded with zeros to four digits. 3. End time of the described activity. 4. Description of the activity. A parser for the input format is available in the `parser/` subdirectory. The parser can be imported as a Go library to write custom tooling, e.g. format conversion tools for importing data into existing time tracking systems. ## Installation No dependencies, simply use `go get`: $ go get github.com/nmeum/tracktime Additional utilities are available in the `contrib/` directory and can be installed separately, also through `go get`. ## License This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.