You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
TwoLaserHead-PushJig/LaiPuLaser/WorkTime.cpp

163 lines
3.7 KiB
C++

#include "StdAfx.h"
#include "WorkTime.h"
#include "PciCh365Mgr.h"
CWorkTime gWorkTime;
CWorkTime::CWorkTime(void)
{
m_bRecordTime = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڼ<EFBFBD>ʱ
m_LastWorkTime = "<EFBFBD>ϴ<EFBFBD>ʱ<EFBFBD><EFBFBD>:";
}
CWorkTime::~CWorkTime(void)
{
}
CString CWorkTime::Time2Str(int n)
{
CString s;
if(n<10)
s.Format("0%ld",n);//<2F><><EFBFBD>߲<EFBFBD>0
else
s.Format("%ld",n);
return s;
}
#if 1//<2F><><EFBFBD>Լ<EFBFBD>ʱ
//<2F><>ʼ<EFBFBD><CABC>ʱ
void CWorkTime::StartRecordTime()
{
m_bRecordTime = true;
m_StartTime=CTime::GetCurrentTime();
}
void CWorkTime::StopRecordTime()
{
m_bRecordTime = false;
}
CString CWorkTime::GetTimeSpanStr()
{
if(!m_bRecordTime)
return "00:00:00";
//<2F><>ȡ<EFBFBD><C8A1>ǰϵͳʱ<CDB3><CAB1>
CTime CurTime;
CTimeSpan TimeSpan;//ʱ<><CAB1><EFBFBD><EFBFBD>
CurTime=CTime::GetCurrentTime();
TimeSpan = CurTime - m_StartTime;
return GetTimeSpanStr(TimeSpan);
}
CTimeSpan CWorkTime::GetTimeSpan()
{
//<2F><>ȡ<EFBFBD><C8A1>ǰϵͳʱ<CDB3><CAB1>
CTime CurTime;
CTimeSpan TimeSpan;//ʱ<><CAB1><EFBFBD><EFBFBD>
CurTime=CTime::GetCurrentTime();
TimeSpan = CurTime - m_StartTime;
return TimeSpan;
}
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
CString CWorkTime::GetTimeSpanStr(CTimeSpan &TimeSpan)
{
return Time2Str(TimeSpan.GetHours())+":"+Time2Str(TimeSpan.GetMinutes())+":"+Time2Str(TimeSpan.GetSeconds());
}
CString CWorkTime::GetCurDate(CString Separator)
{
CString str;
CTime CurTime;
CurTime=CTime::GetCurrentTime();
str += Time2Str(CurTime.GetYear())+Separator;
str += Time2Str(CurTime.GetMonth())+Separator;
str += Time2Str(CurTime.GetDay());
return str;
}
//<2F><>ȡ<EFBFBD><C8A1>ǰʱ<C7B0><CAB1>Separator Ϊ<>ָ<EFBFBD><D6B8><EFBFBD>
CString CWorkTime::GetCurTime(CString Separator)
{
CString str;
CTime CurTime;
CurTime=CTime::GetCurrentTime();
str += Time2Str(CurTime.GetHour())+Separator;
str += Time2Str(CurTime.GetMinute())+Separator;
str += Time2Str(CurTime.GetSecond());
return str;
}
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6>ٷ<EFBFBD><D9B7><EFBFBD>
int CWorkTime::GetTimeSpanMin(CTimeSpan &TimeSpan)
{
int m = 0;
m += TimeSpan.GetHours() * 60;
m += TimeSpan.GetMinutes();
return m;
}
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
void CWorkTime::SaveLastWorkTime()
{
m_LastWorkTime = "<EFBFBD>ϴ<EFBFBD>ʱ<EFBFBD><EFBFBD>:" + GetTimeSpanStr();
}
#endif
#if 1//<2F><>ȷ<EFBFBD><C8B7>ʱ
//<2F><>ʼ<EFBFBD><CABC>ȷ<EFBFBD><C8B7>ʱ
void CWorkTime::StartExactTime()
{
QueryPerformanceCounter(&m_ExactStart);
}
//<2F><>ȡ<EFBFBD><C8A1>ȷʱ<C8B7><CAB1>,<2C><>λ<EFBFBD><CEBB>ms
int CWorkTime::GetExactTime()
{
LARGE_INTEGER EndTime;
QueryPerformanceCounter(&EndTime);
int ret = ((EndTime.QuadPart - m_ExactStart.QuadPart)*1000)/(gPciCh365Mgr->GetClockFre().QuadPart);
return ret;
}
#endif
#if 1//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>
double CWorkTime::GetTimeSpanSecond()
{
CTimeSpan TimeSpan = GetTimeSpan();
int s = 0;
s += TimeSpan.GetHours() * 60 * 60;
s += TimeSpan.GetMinutes() * 60;
s += TimeSpan.GetSeconds();
return s;
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ
void CWorkTime::StartBackTime(double s)
{
m_BackTimeSeconds = s;
StartRecordTime();
}
//<2F><>ȡ<EFBFBD><C8A1>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
CString CWorkTime::GetLeftTimes()
{
double CurSeconds = GetTimeSpanSecond();//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int LeftSeconds = (int)(m_BackTimeSeconds-CurSeconds);
CString str = "00:00:00";
if(LeftSeconds>0)
{
int Seconds = LeftSeconds % 60;
LeftSeconds -= Seconds;
int Minutes = (LeftSeconds%3600)/60;
LeftSeconds -= Minutes*60;
int Hours = LeftSeconds/3600;
str = Time2Str(Hours)+":"+Time2Str(Minutes)+":"+Time2Str(Seconds);
}
return str;
}
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
bool CWorkTime::IsBackTimeEnd()
{
if(!m_bRecordTime)//<2F>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>
return true;
double CurSeconds = GetTimeSpanSecond();//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(CurSeconds > m_BackTimeSeconds)
{
m_bRecordTime = false;
return true;
}
return false;
}
#endif