I decided to place this here, since I had to code it some time ago. The application is quite simple, assuming you have some dial-up connection setup in your computer, just enter the time frame and the name of the connection (as shown in "connect to" in windows).

Then a simple LINQ query will look up the windows logs and will show you how much time you have spent connected. You can modify the code to monitor anything you want as long as is on the log.

You can grab the code from GitHub.