Time Reporter

Overview | User's Manual | Change History

Overview

Time Reporter allows you to record time spent on tasks in terms of start and stop times in a simple text format, then calculates the time worked on each task for each day and each reporting period.

Requirements

Time Reporter requires the Java Runtime Environment (JRE) version 5.0+ to be installed.

Legal

Time Reporter is copyright © 2005-2006 by Basil Vandegriend. The software is licensed for use under the terms of the GNU General Public License (GPL) version 2.0 or later.

The software is provided for use as-is, and is not warranted to be defect-free or to meet your requirements. In particular, the algorithms used to calculate time spent may conflict with the reporting requirements of your organization. If in doubt, inspect the source code (which is provided as part of the release).

Download

The latest version of Time Reporter can be downloaded from the Software page of the site Basil Vandegriend: Professional Software Development.

Feedback

Feedback concerning this software is appreciated, and can be provided on the Software Feedback page. I would appreciate hearing if you find the software useful and make use of it regularly.

User's Manual

Introduction

The two pieces of input to the time reporter software are the task definition file and one or more time sheet entry files (extension of .ts). All tasks referenced in the time sheet entry files must be listed in the task definitions file and associated with a root task (multiple tasks can be associated with the same root task). The software produces a report file for each time sheet entry file (named the same as the time sheet entry file with '-Report' appended to the filename, and with a .txt extension). This report contains the time spent on each task per day, plus a summary specifying the total time spent on each task for the entire time sheet entry file. Typically a time sheet entry file contains a week's worth of entries, so the summary is for the entire week.

When producing the report, the time reporter calculates the time spent in total each day, and rounds it to the nearest 15 minutes (0.25 hours) (+5 to -9 minutes rounding). This rounded time is called official time because it is what is reported. The rounding error (actual time - official time) is included in the report. The time reporter then calculates the time spent on each task per day, rounding the total for each task to the nearest 15 minutes and ensuring that the task totals will add up to the total for the day. Time for tasks is reported both for normal tasks and for root tasks.

The example directory contains the following example files: the task definitions file TaskDefinitions.txt, a time sheet entry file called Nov1-Nov5-2005.ts, the resulting report file Nov1-Nov5-2005-Report.txt, and a Windows command script timereporter.cmd that produces the report from the two input files.

Running Time Reporter

The default behavior of time reporter is to process all files in the current directory with an extension of .ts as time sheet entry files, using for task definitions the file in the current directory called TaskDefinitions.txt. The easiest way to get started is to copy the example directory to a location of your choice and then modify the timereporter.cmd file to point to the TimeReporter.jar file provided in the release. Running the time reporter then just requires launching the timereporter.cmd script.

Time Reporter accepts one command-line argument, which is the name of a time sheet entry file, or the name of a directory which will be scanned for time sheet entry files with an extension of .ts

Time Sheet Entry File

A sample time sheet entry file is listed below:

November 1, 2005
9:18am example
9:22am do-stuff # some comment
10:30am -
# coffee break - stop tracking time
11:00am do-stuff
12:00pm - # lunch
12:30pm example
1:02pm do-stuff
5:00pm -

November 2, 2005
9:18am example
1:20pm do-stuff
3:20pm do-stuff2
5:02pm -

For each day, you specify the time you start a task and the name of the task. To start a new task, you just specify the start time and the new task, and the reporter will automatically end the old task on the previous minute. To stop tracking time (i.e. at the end of the day or for a lunch break), just enter a dash (-) for the task. Comments (prefixed by #) are allowed either at the end of a line, or on its own line. Blank lines are ignored.

The format of a time sheet entry file is as follows:
File = {DayEntry}+
DayEntry = {DateLine} {EntryLine}
DateLine = {Month Day, Year}
EntryLine = {Time} {Activity}
Time = {HH:MM(am || pm)}
Activity = {Task Name} || -

Task Definition File

A sample task definitions file is listed below:

# Task Definitions
toil -> ADMIN/TOIL
example -> EXAMPLE
do-stuff -> DEPARTMENT_FOO/PROJECT_BAR/TASK_BAZ
do-stuff2 -> DEPARTMENT_FOO/PROJECT_BAR/TASK_BITZ

The task definitions file has a simple format. Each line corresponds to: TimesheetTask -> RootTask. Comments (prefixed by #) are allowed either at the end of a line, or on its own line. Blank lines are ignored.

Time Sheet Report File

A sample time sheet report file is listed below, based on the two sample files listed above:

---Report for timesheet 'Nov1-Nov5-2005.ts'---

Legend: each line for a task consists of the following:
[Task Name] [Official Time] [Entered Time - Official Time]

---Daily Reports---

---Tuesday, Nov 01, 2005---

Tasks:
do-stuff 6.25 h -9 min
example 0.50 h +6 min

Root Tasks:
DEPARTMENT_FOO/PROJECT_BAR/TASK_BAZ 6.25 h -9 min
EXAMPLE 0.50 h +6 min

TOTAL: 6.75 h -3 min

---Wednesday, Nov 02, 2005---

Tasks:
do-stuff 2.00 h 0 min
do-stuff2 1.75 h -3 min
example 4.00 h +2 min

Root Tasks:
DEPARTMENT_FOO/PROJECT_BAR/TASK_BAZ 2.00 h 0 min
DEPARTMENT_FOO/PROJECT_BAR/TASK_BITZ 1.75 h -3 min
EXAMPLE 4.00 h +2 min

TOTAL: 7.75 h -1 min

---Period Report---

Tasks:
do-stuff 8.25 h -9 min
do-stuff2 1.75 h -3 min
example 4.50 h +8 min

Root Tasks:
DEPARTMENT_FOO/PROJECT_BAR/TASK_BAZ 8.25 h -9 min
DEPARTMENT_FOO/PROJECT_BAR/TASK_BITZ 1.75 h -3 min
EXAMPLE 4.50 h +8 min

TOTAL: 14.50 h -4 min

---End of Report---

Change History

Version 1.0.1

Version 1.0