Code Craft

Software is equal parts Art, Craft, and Engineering


TimeKeeper is a small application I wrote to monitor and record my time throughout my working day. It is designed to be an extremely simple and low impact way to record time spent on different projects and activities.

If you have not already done so, please read the general terms under which this program may be downloaded and used.

2012-12-06: Version 3.0 - Allow HH:MM times in math equations. Now you may write 1:05+1:30 for a total of 2:35 (or 2.58) hours.
2013-01-22: Version 3.2 - New settings for optional features; Long project codes; Allow time display in HH:MM format; Better defaults for summary reports. Total time includes current project only if both code and description are not blank.

It uses a simple text file to record the number of hours to 2 decimal places, a project code up to 10 characters long and a detailed description of the activity of unlimited length. A new text file is created for each calendar day, in the current directory, named as TimeLog.CCYYMMDD.txt. The files can be subesequently organized into whatever directory structure suits for long term storage. The current day’s file is opened and closed for each write and only when the record button is clicked, which means it can be manually edited with any text editor, even while TimeKeeper is running.

A facility to quickly add time logs for holidays, vacations and other special days exists to allow a complete record with every day accounted for, and allowing holidays to be accounted for as paid time. Likewise, a very simply mechanism exists to generate a summary for any specific period of time. The summary generator scans entire directory trees allowing time logs filed in subdirectories. It also treats the predefined project codes specially to calculate real time off over a given period.

Following is an example log file created by TimeKeeper, TimeLog.20081206.log:

Time   Project     Activity Description (2008-12-06)
-----  ----------  ------------------------------------------------------------
 0.47  OVERHEAD    Email.
 1.37  TIMEKEEPER  Work up special day recorder.
 3.83  TIMEKEEPER  Add summary generator.
 4.50  TIMEKEEPER  Write help text.
 0.12  OVERHEAD    Backup. Submit day log.
-----  ----------  ------------------------------------------------------------
10.29  *TOTAL      Total time spent on work related activities.
-----  ----------  ------------------------------------------------------------

Download & Installation

Download TimeKeeper 3.2 or the previous stable version TimeKeeper 3.0.

This program requires the Java Runtime Engine V6 or later to run. The JRE need only be installed once to run any number of Java applications. If you are unsure whether you already have the JRE installed you can check it on the Java website using the “Do I have Java?” link.

The program is installed manually, simply by copying it to a directory on your computer; the recommended location is an appropriately named subdirectory in the standard directory for programs/binaries on your computer (e.g. for Windows this would be:

C:\Program Files\TimeKeeper

while for a Linux, OSX or Unix O/S this would be:


The program uses the current directory for any files it acesses including the logs and backup archives that it writes. The easiest way to run the program is via a shortcut, launcher or script that sets the current directory to any desired location within your user profile’s data directory.

Alternatively, the simplest installation is to drop the JAR executable directly into the desired data directory. This is an ideal way to trial the program; it can be moved to the long-term program location at any time in the future without affecting any existing data.

If your operating system does not support launching Java programs directly, you can use the following command line:

java -jar TimeKeeper.jar


The Main Window

The Help Window