1: /************************************************************************
     2:  * CS415 Assignment 11G - Time.C
     3:  * Programmed by
     4:  *    Dan Noe
     5:  *    Steve Anderson
     6:  *    Nick Wawyrzinski
     7:  *
     8:  * This class defines a time value based on days, hours, and minutes.
     9:  * Input and output is in the form days:hours:minutes -- sourced from the
    10:  * supplied definition Time.h
    11:  ************************************************************************/
    12: 
    13: #include <iostream> 
    14: #include "Time.h" 
    15: 
    16: using namespace std;
    17: 
    18: // Default no-arg construction initializes to 0 days, 0 hours, 0 minutes.
    19: 
    20: Time::Time() {
    21:    days = 0;
    22:    hours = 0;
    23:    minutes = 0;
    24: }
    25: 
    26: // Construct given specific days, hours, minutes arguments
    27: 
    28: Time::Time(int dys, int hrs, int min) {
    29:    days = dys;
    30:    hours = hrs;
    31:    minutes = min;
    32: }
    33: 
    34: // Input a time from stdin into this object.
    35: 
    36: void Time::input() {
    37:    char dummy; // throwaway value absorbs :'s
    38: 
    39:    cin >> days >> dummy >> hours >> dummy >> minutes;
    40: }
    41: 
    42: // Output a time value, padded correctly with zeroes, to stdout
    43: 
    44: void Time::output() const {
    45:    // This is a really ugly hack.  A cleaner solution would be to include 
    46:    // <iomanip> and use the setw manipulator, but we have not learned this
    47:    // yet... -dpn
    48:    
    49:    cout <<  days << ':';
    50:    
    51:    if (hours < 10) {
    52:       cout << '0';
    53:    }
    54:    
    55:    cout << hours << ':';
    56:    
    57:    if (minutes < 10) {
    58:       cout << '0';
    59:    }
    60:    
    61:    cout << minutes;
    62: }
    63: 
    64: // Add a time to our time object.
    65: 
    66: Time Time::add(Time v) const {
    67:    int days,hours,minutes;  // variables used to construct a new Time object
    68:    
    69:    // We convert everything by breaking it down into minutes then building it
    70:    // back up.
    71:    
    72:    
    73:    minutes = ((*this).minutes + (*this).hours * 60 + (*this).days * 1440);
    74:    
    75:    minutes = minutes + (v.minutes + v.hours * 60 + v.days * 1440);
    76:    
    77:    days =  minutes/1440;
    78:    hours = (minutes - days * 1440)/60;
    79:    minutes = minutes % 60;
    80:    
    81:    return Time(days,hours,minutes);
    82: }
    83: 




syntax highlighting by

w e b c p p
web c plus plus