Exercise: parse hours log file and create time report
Exercise: Parse hours log file and create time report.
When I was running class-room Perl training courses I've was logging how my course progresses and created log files like this:
09:20 Introduction 11:00 Exercises 11:15 Break 11:35 Scalars 12:30 Lunch Break 13:30 Exercises 14:10 Solutions 14:30 Break 14:40 Arrays 15:40 Exercises 17:00 Solutions 17:30 End 09:30 Advanced Arrays 10:30 Break 10:50 Exercises 12:00 Solutions 12:30 Hash fuction introduction 12:45 Lunch Break 14:15 Exercises 16:00 Solutions 16:15 Break 16:30 Subroutines 17:00 Exercises 17:30 End
Every row starts with the timestamp when the specific activity started and then the name of the activity. Empty rows separate the dates.
Some of the activities are the names of the lectures, such as Introduction and Scalars. Others are the names of the names of the activities: Exercises, Solutions, Break, Lunch Break, and End marks the end of the training day.
A course lasts several days. In our sample file we have two days.
Once I had these log file I wanted to generate two reports.
One of them was to display the same data, but showing from-to timestamps and removing the End entry. It would look like this:
09:20-11:00 Introduction 11:00-11:15 Exercises 11:15-11:35 Break ...
The other one would show the accumulated time spent on various activities and the lectures detailed.
Lectures: 210 minutes 22% Solutions: 95 minutes 9% Break: 65 minutes 6% ... Lectures: Introduction: 23 minutes 2% ...
This is the exercise, to implement the code that will take the log file and generate the reports.