Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- { 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! }
Advertisement
Add Comment
Please, Sign In to add comment