DEV Community

David García
David García

Posted on

Python script to track employee work hours without buying software

```html

Python script to track employee work hours without buying software

Let's be honest, tracking employee work hours can quickly become a headache. Dedicated software solutions are expensive, often bloated with features you don’t need, and require ongoing subscriptions. As a developer, you're probably looking for a simple, effective, and free solution. This article outlines a Python script to achieve exactly that – no complicated setups, just straightforward time tracking.

The Problem: Manual Time Sheets are a Mess

We’ve all been there. Employees filling out paper time sheets, discrepancies, arguments about what constitutes ‘billable’ hours… it’s a drain on productivity and trust. Even digital spreadsheets quickly become unwieldy, especially when you’re dealing with multiple employees and projects. The goal here isn’t to replace a full-fledged HR system, but to provide a lightweight, accurate way to record time for smaller teams or individual contractors.

The Solution: A Simple Python Script

This script takes a basic approach, prompting the user for start and end times and storing them. It’s designed to be easily adaptable to your specific needs. Don't expect fancy reporting features, but it's a solid foundation.

Example Code:


import datetime

def track_hours():

start_time = input("Enter start time (HH:MM): ")

end_time = input("Enter end time (HH:MM): ")

try:

start = datetime.datetime.strptime(start_time, "%H:%M")

end = datetime.datetime.strptime(end_time, "%H:%M")

duration = end - start

print(f"Worked: {duration}")

except ValueError:

print("Invalid time format. Please use HH:MM.")

if name == "main":

track_hours()

Key lines:

  • import datetime: Imports the `datetime` module for working with dates and times.
  • datetime.datetime.strptime(): Parses the input strings into `datetime` objects, handling the format HH:MM.
  • duration = end - start: Calculates the difference between the end and start times, resulting in a `timedelta` object.

Practical Results & Customization

Run this script, and you'll be prompted for start and end times. It calculates the duration and prints it. You can easily extend this by:

  • Adding employee names.
  • Saving the data to a simple text file or CSV.
  • Integrating with a simple database (SQLite is a good choice).

Conclusion & Next Steps

This Python script provides a surprisingly effective and free way to track employee work hours. It’s a good starting point for automating this process, especially for smaller teams or freelance projects. If you're looking for more advanced time tracking solutions, or need help implementing a custom solution tailored to your business needs, I offer consulting services and automation tool development. Learn more about my services here.

```


Itelnet Consulting

Top comments (0)