Tassos icon

Δημιουργία αντικειμένου Time σε C++.

Tassos | PRO | 03/16/15 10:17:02 PM UTC | 0 ⭐ | 439 👁️ | Never ⏰ | []
C++ |

7.29 KB

|

None

|

0 👍

/

0 👎

{                                      Visit:   http://g-lts.info/  for more code!                            }
 
# include <iostream>
 
using namespace std;
 
class Time
{
    private:
        int hour,minute,second;
    public:
        Time(int h,int m,int s);
        void print12();
        void print24();
        void nextSecond();
        void prevSecond();
        int toSeconds();
        int countMidnight();
        
        bool setHour(int h );
        bool setMinute(int m);
        bool setSecond(int s);
        
        int getHour();
        int getMinute();
        int getSecond();
};
 
 
 
Time::Time(int h,int m,int s)
{
    hour=h;
    minute=m;
    second=s;
}
 
 
/* Τέλος κατασκευαστή.*/
 
 
/* ================================================================== */
/* Μέθοδοι set : */
    
            
bool Time::setHour(int h )
{ // Θέτει την ώρα ελέγχοντας την όμως. 
    if ( h<0 || h>23 ) // Αν ΔΕΝ είναι στο διάστημα [0 - 23].
        return false;
 
    hour=h; // Αν είναι στο σωστό διάστημα τότε το δεχόμαστε.
    return true; // :)
}
 
 
 
bool Time::setMinute(int m)
{ // Θέτει τα λεπτά ελέγχοντάς τα όμως.
    if ( m<0 || m>59 ) // Αν ΔΕΝ είναι στο διάστημα [0 - 59].
        return false;
        
    minute=m; // Αν είναι στο σωστό διάστημα τότε το δεχόμαστε.
    return true;
}
 
 
 
bool Time::setSecond(int s)
{ // Θέτει τα δευτερόλεπτα ελέγχοντάς τα όμως.
    if ( s<0 || s>59 ) // Αν ΔΕΝ είναι στο διάστημα [0 - 59].
        return false;
        
    second = s; // Αν είναι στο σωστό διάστημα τότε το δεχόμαστε.
    return true;
}
 
 
/* Τέλος των μεθόδων set . */
/* ================================================================== */
/* Μέθοδοι get : */
 
        
int Time::getHour()
{
    return hour;
}
 
 
 
int Time::getMinute()
{
    return minute;
}
 
 
 
int Time::getSecond()
{
    return second;
}
 
 
 
/* Τέλος των μεθόδων get . */
 
/* ================================================================== */
 
 
 
int Time::toSeconds()
{ // Μετατρέπει την ώρα σε δευτερόλεπτα.
    int total=0;
    total=total+second; // Προσθέτουμε αρχικά τα δευτερόλεπτα στα "συνολικά δευτερόλεπτα".
    total = total + minute * 60; // Μετατρέπουμε τα λεπτά σε δευτερόλεπτα (minute * 60) και τα προσθέτουμε και αυτά στο σύνολο.
    total = total + hour * 3600; // Μετατρέπουμε τις ώρες σε λεπτά (hour * 3600) και τις προσθέτουμε στο σύνολο.
    return total; // Τέλος επιστρέφουμε τα συνολικά λεπτά.
}
 
 
 
int Time::countMidnight()
{// Επιστρέφει τα δευτερόλεπτα που υπολείπονται μέχρι το πέρας της ημέρας.
    int count1=toSeconds(); // Μετατρέπουμε καταρχήν των τρέχουσα ώρα σε δευτερόλεπτα.
    int count2=24 * 3600; // Μετατρέπουμε την τελευταία ώρα της ημέρας σε δευτερόλεπτα.
    return count2-count1; // Αφαιρούμε από τα μεσάνυχτα την τρέχουσα ώρα και βλέπουμε - επιστρέφουμε τι απομένει.
}
 
 
 
void Time::print12()
{// Επιστρέφει την ώρα σε 12ωρη μορφή.
    if ( hour > 12 ) // Αν είναι πάνω από 12 η ώρα, αφαιρούμε από την τρέχουσα ώρα 12.
        cout<<hour-12<<":"<<minute<<":"<<second<< " μ.μ"<<endl;
    else // Διαφορετικά οκ όλα είναι μια χαρά. ;)
        cout<<hour<<":"<<minute<<":"<<second<<" π.μ." << endl;
}
 
 
 
void Time::print24()
{ // Απλώς εμφανίζει την ώρα.
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}
 
 
 
void Time::prevSecond()
{ // Πάμε την τρέχουσα ώρα 1 δευτερόλεπτο πίσω.
    --second; // Αφαιρούμαι απλά 1 δευτερόλεπτο.
    if ( second == -1 ) // Αν ήταν στο 0 όμως και πάει στο -1 ( δε το θέλουμε αυτό ) :
    {
        second=59; // Έτσι ορίζουμε τα δευτερόλεπτα να έχουν τιμή 59 και όχι -1.
        --minute; // Όμως έτσι εννοείται πως πάμε και ένα λεπτό πίσω. ;)
        
        if ( minute == -1 ) // Αν τα λεπτά ήταν στο 0 όμως και πάει στο -1 ( δε το θέλουμε αυτό ) :
        {
            minute=59; // Έτσι ορίζουμε τα λεπτά να έχουν τιμή 59 και όχι -1.
            hour--; // & έτσι εννοείται όμως πως πάμε και μια ώρα πίσω. ;)
            
            if ( hour == -1 ) // Αν όμως και η ώρα ήταν στο 0 και πάει στο -1, τότε : 
            {
                hour=23; // ορίζουμε πως η ώρα θα είναι 23 .
            }
        }
    }
}
 
 
    
void Time::nextSecond()
{ // Πάμε 1 δευτερόλεπτο μπροστά.
 
    ++second; // Προσθέτουμε απλώς 1 δευτερόλεπτο στην ιδιότητα του αντικειμένου μας.
 
    if ( second == 60 ) // Αν τα δευτερόλεπτα όμως γίνουν 60 ( δε το θέλουμε αυτό ) :
    {
        minute++; // Αυτό σημαίνει πως πάμε τελικά 1 λεπτό εμπρός ( χάρης του ενός δευτερολέπτου )
        second=0; // και τα δευτερόλεπτα εννοείται μηδενίζονται.
        
        if ( minute == 60 ) // Αν τα λεπτά όμως γίνουν 60 ( δε το θέλουμε αυτό ) :
        {
            hour++; // Τότε τελικά πάμε μια ώρα εμπρός
            minute=0; // και τα λεπτά μηδενίζονται.
            
            if ( hour == 24 ) // Τέλος αν η ώρα γίνει 24 ( πράγμα το οποίο δε το θέλουμε )
            {
                hour=0; // Η ώρα μηδενίζει. :)
            }
        }
    }
}
 
 
 
 
 
 
 
 
 
int main()
{
    Time t1(23,59,59); // Δημιουργούμε το αντικείμενο t1 και θέτουμε απευθείας την ώρα.
    Time t2(22,59,59); // Δημιουργούμε το αντικείμενο t2 και θέτουμε απευθείας την ώρα.
    
    t1.print12(); // Εμφανίζουμε την ώρα σε 12ωρη μορφή.
    
    t2.print24(); // Εμφανίζουμε την ώρα σε 24ωρη μορφή.
    
    cout<<"Η ώρα άλλαξε. "<<endl;
    
    t2.nextSecond(); // Πάμε 1 sec μπροστά.
    
    t2.print24();// Εμφανίζουμε την ώρα σε 24ωρη μορφή.
    
    cout<<"Προς τα κάτω. "<<endl;
    
    t2.prevSecond(); // Αφαιρούμε 1 sec από την τρέχω ώρα του t2.
    
    t2.print24(); // Εμφανίζουμε την ώρα σε 24ωρη μορφή.
    
    
    cout<<"Η t1 απέχει από τα μεσάνυχτα : "<<t1.countMidnight()<<endl;
    cout<<"Η t2 απέχει από τα μεσάνυχτα : "<<t2.countMidnight()<<endl;
    
    return 0;
}
 
 
 
 
 
 
 
{                                      Visit:   http://g-lts.info/  for more code!                            }

Comments