📄 backuptask.cpp
字号:
//---------------------------------------------------------------------------
#include <DateUtils.hpp>
#include <assert.h>
#pragma hdrstop
#include "BackupTask.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
char *TXTRunTime = "时执行备份计划";
char *TXTDay[7] = {"星期一" , "星期二" , "星期三" , "星期四" , "星期五" , "星期六" , "星期日"};
void BackupTask::SetDatabase(const AnsiString & strDatabase)
{
m_strDatabase = strDatabase;
}
void BackupTask::SetCycleType(int nType)
{
m_nCycleType = nType;
}
void BackupTask::SetCycleCount(int nCount)
{
m_nCycleCount = nCount;
}
void BackupTask::SetDayCount(int nCount)
{
m_nDayCount = nCount;
}
int BackupTask::GetCycleCount()
{
return m_nCycleCount;
}
int BackupTask::GetCycleType()
{
return m_nCycleType;
}
int BackupTask::GetDayCount()
{
return m_nDayCount;
}
const AnsiString & BackupTask::GetDatabase()
{
return m_strDatabase;
}
void BackupTask::SetActiveDate(const TDateTime &dtDate)
{
m_dtActiveDate = DateOf(dtDate);
}
const TDateTime & BackupTask::GetActiveDate()
{
return m_dtActiveDate;
}
void BackupTask::SetActiveTime(const TDateTime & dtDate)
{
m_dtActiveTime = TimeOf(dtDate);
}
const TDateTime & BackupTask::GetActiveTime()
{
return m_dtActiveTime;
}
AnsiString BackupTask::GetCycleString()
{
AnsiString strTemp;
switch (m_nCycleType)
{
case 1:
#ifdef _DEBUG
assert( m_nCycleCount > 0 && m_nCycleCount < 8);
#endif
strTemp = "每" + IntToStr(m_nCycleCount) + "天的" + m_dtActiveTime.TimeString() + TXTRunTime;
break;
case 2:
#ifdef _DEBUG
assert( m_nCycleCount > 0 && m_nCycleCount < 6);
assert( m_nDayCount > 0 && m_nDayCount < 8);
#endif
strTemp = "每" + IntToStr(m_nCycleCount) + "周的" + AnsiString(TXTDay[m_nDayCount - 1]) + m_dtActiveTime.TimeString() + TXTRunTime ;
break;
case 3:
#ifdef _DEBUG
assert( m_nCycleCount > 0 && m_nCycleCount < 12);
assert( m_nDayCount > 0 && m_nDayCount < 29);
#endif
strTemp = "每" + IntToStr(m_nCycleCount) + "月的第" + IntToStr(m_nDayCount) + "天的" + m_dtActiveTime.TimeString() + TXTRunTime;
break;
default:
#ifdef _DEBUG
assert(FALSE);
#endif
}
return strTemp;
}
TDateTime BackupTask::GetNextDate()
{
TDateTime dtNextDate;
switch (m_nCycleType)
{
case 1:
#ifdef _DEBUG
assert( m_nCycleCount > 0 && m_nCycleCount < 8);
#endif
dtNextDate = m_dtActiveDate + m_nCycleCount;
return dtNextDate;
case 2:
#ifdef _DEBUG
assert( m_nCycleCount > 0 && m_nCycleCount < 6);
assert( m_nDayCount > 0 && m_nDayCount < 8);
#endif
dtNextDate = m_dtActiveDate - m_dtActiveDate.DayOfWeek() + m_nCycleCount * 7 + m_nDayCount + 1;
return dtNextDate;
case 3:
unsigned short nYear, nMonth, nDay;
m_dtActiveDate.DecodeDate(&nYear, &nMonth, &nDay);
nMonth += m_nCycleCount;
for(;nMonth > 12 ; nMonth -= 12)
{
nYear++;
}
return TDateTime(nYear, nMonth, m_nDayCount);
default:
#ifdef _DEBUG
assert(FALSE);
#endif
}
}
void BackupTask::SetID(int nID)
{
m_nID = nID;
}
int BackupTask::GetID()
{
return m_nID;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -