FINAL PROJECT isn't it

Fork of ELEC351 by Plymouth ELEC351 Group T

TIME.cpp

Committer:
chills
Date:
2018-01-07
Revision:
34:c0b8705f183d
Parent:
33:3b5096f0126a
Child:
52:99915f5240b2

File content as of revision 34:c0b8705f183d:

#include "TIME.hpp"


using namespace std;

Mutex Time_Lock;

int current_time_global = 0;
int new_time = 0;

int get_current_time()              //Get Current Time
{
    Time_Lock.lock();
    current_time_global = time(0);
    Time_Lock.unlock();
    return current_time_global;
}

void set_new_date(int days, int months, int years)
{
    time_t Time = time(NULL);
    tm* Time_Pointer = localtime(&Time); 
    set_time(get_current_time() - year*(Time_Pointer->tm_year - 70) + year*(years - 1970));
    set_time(get_current_time() - month*Time_Pointer->tm_mon + month*(months - 1));
    set_time(get_current_time() - day*Time_Pointer->tm_mday + day*days);
}

void set_new_time(int hours, int minutes, int seconds)
{
    time_t Time = time(NULL);
    tm* Time_Pointer = localtime(&Time); 
    set_time(get_current_time() - second*Time_Pointer->tm_sec + second*seconds);
    set_time(get_current_time() - minute*Time_Pointer->tm_min + minute*minutes);
    set_time(get_current_time() - hour*Time_Pointer->tm_hour + hour*hours);    
}

void Add_Second()                   //Seconds to Seconds
{
    Time_Lock.lock();
    new_time = time(0) + 1;
    set_time(new_time);
    Time_Lock.unlock();    
}

void Subtract_Second()
{
    Time_Lock.lock();
    new_time = time(0) - 1;
    set_time(new_time);
    Time_Lock.unlock();    
}

void Add_Minute()                   //Minutes to Seconds
{
    Time_Lock.lock();
    new_time = time(0) + 60;
    set_time(new_time);  
    Time_Lock.unlock();  
}

void Subtract_Minute()
{
    Time_Lock.lock();
    new_time = time(0) - 60;
    set_time(new_time);
    Time_Lock.unlock();
}

void Add_Hour()                     //Hours to Seconds
{
    Time_Lock.lock();
    new_time = time(0) + 3600;
    set_time(new_time); 
    Time_Lock.unlock();
}

void Subtract_Hour()
{
    Time_Lock.lock();
    new_time = time(0) - 3600;
    set_time(new_time);  
    Time_Lock.unlock(); 
}

void Add_Day()                      //Days to Seconds
{
    Time_Lock.lock();
    new_time = time(0) + 86400;
    set_time(new_time); 
    Time_Lock.unlock(); 
}

void Subtract_Day()
{
    Time_Lock.lock();
    new_time = time(0) - 86400;
    set_time(new_time);
    Time_Lock.unlock();  
}

void Add_Month()                   //Months to Seconds
{
    Time_Lock.lock();
    new_time = time(0) + 2629743;
    set_time(new_time);  
    Time_Lock.unlock();
}

void Subtract_Month()
{
    Time_Lock.lock();
    new_time = time(0) - 2629743;
    set_time(new_time);  
    Time_Lock.unlock();
}

void Add_Year()                     //Years to Seconds
{
    Time_Lock.lock();
    new_time = time(0) + 31556926;
    set_time(new_time); 
    Time_Lock.unlock();    
}

void Subtract_Year()
{
    Time_Lock.lock();
    new_time = time(0) - 31556926;
    set_time(new_time);  
    Time_Lock.unlock();   
}