backuptask.cpp

来自「我写的SQL Server网络备份工具。(服务器端用VC开发」· C++ 代码 · 共 153 行

CPP
153
字号
//---------------------------------------------------------------------------
#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 + =
减小字号Ctrl + -
显示快捷键?