ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/ns_dev/Python/NinoCode/Tool_Box/TimeEntryTools.py
Revision: 889
Committed: Sat May 24 02:07:30 2025 UTC (10 months ago) by nino.borges
Content type: text/x-python
File size: 1826 byte(s)
Log Message:
A program that will help me QC some of my time entry.

File Contents

# Content
1 """
2
3 TimeEntryTools
4
5 Created by:
6 Emanuel Borges
7 12.09.2024
8
9 A program that will help me QC some of my time entry.
10
11 """
12
13 from datetime import datetime
14
15
16 def calculate_time_worked(start_time_str, lunch_break, end_time_str, additional_back_to_work_str = None, additional_end_work_str = None):
17 try:
18 ## Convert main work period to datetime objects
19 start_time = datetime.strptime(start_time_str, "%I:%M%p")
20 end_time = datetime.strptime(end_time_str, "%I:%M%p")
21
22
23 ## Calculate total work hours excluding lunch break
24 total_hours = (end_time - start_time).total_seconds() / 3600
25 total_hours -= lunch_break
26
27
28 ## Handle additional work period if provided
29 if additional_back_to_work_str and additional_end_work_str:
30 additional_start = datetime.strptime(additional_back_to_work_str, "%I:%M%p")
31 additional_end = datetime.strptime(additional_end_work_str, "%I:%M%p")
32 additional_hours = (additional_end - additional_start).total_seconds() /3600
33 total_hours += additional_hours
34
35
36 ## Ensure no negative time if returned
37 return max(total_hours,0)
38 except Exception as e:
39 print(f"An error occurred: {e}")
40 return None
41
42
43
44
45
46 if __name__ == '__main__':
47 additional_back_to_work = None
48 additional_end_work = None
49
50 start_time = "09:00AM"
51 lunch_break = 1 #45 munutes is .75
52 end_time = "6:30PM"
53 additional_back_to_work = "08:30PM"
54 additional_end_work = "10:00PM"
55
56
57
58 ## Calculate total hours worked
59 hours_worked = calculate_time_worked(start_time, lunch_break, end_time, additional_back_to_work, additional_end_work)
60 print(hours_worked)
61 print(f"Total hours worked: {hours_worked:.2f} hours.")