📄 date.c
字号:
#include <user\dlg.h>
#include "sharewareluncher.h"
#include "resource.h"
extern APPINFO aiAppInfo[50];
SYSTEMTIME stVr,stReal;
BOOL bSysTimeChanged=FALSE;
BOOL bClockYes=TRUE;
BOOL Lunch(HWND hWnd,int i)
{
char szDir[256];
SETUPINFO siInfo;
if(aiAppInfo[i].stVrDate.wYear!=0 && aiAppInfo[i].stVrDate.wMonth!=0 &&
aiAppInfo[i].stVrDate.wDay!=0)
{
GetLocalTime(&stReal);
if(!bSysTimeChanged)
GetLocalTime(&stVr);
else
KillTimer(hWnd,0);
stVr.wYear=aiAppInfo[i].stVrDate.wYear;
stVr.wMonth=aiAppInfo[i].stVrDate.wMonth;
stVr.wDay=aiAppInfo[i].stVrDate.wDay;
bClockYes=FALSE;
SetLocalTime(&stVr);
SetTimer(hWnd,0,20000,NULL);
bSysTimeChanged=TRUE;
}
GetPathFromFileName1(aiAppInfo[i].szAppCmd,szDir);
siInfo=RunSetup(aiAppInfo[i].szAppCmd,szDir,NULL);
return siInfo.flag;
}
BOOL GetPathFromFileName1(LPSTR szFileName,LPSTR szDir)
{
int i,nCount=0;
char szTemp[256]=" ";
for(i=0;i<(int)strlen(szFileName);i++)
{
if(szFileName[i]=='\\')
nCount++;
}
if(nCount==0)
return FALSE;
for(i=0;i<(int)strlen(szFileName);i++)
{
szTemp[i]=szFileName[i];
if(szFileName[i]=='\\')
{
nCount--;
if(nCount==0)
{
szTemp[i]='\0';
wsprintf(szDir,szTemp);
return TRUE;
}
}
}
return FALSE;
}
void DoTimer(HWND hWnd,UINT i)
{
KillTimer(hWnd,i);
if(IsOneDayPassed1(&stVr,FALSE))
DoOneDayPassed1(&stReal,FALSE);
GetLocalTime(&stVr);
stVr.wYear=stReal.wYear;
stVr.wMonth=stReal.wMonth;
stVr.wDay=stReal.wDay;
SetLocalTime(&stVr);
bSysTimeChanged=FALSE;
bClockYes=TRUE;
}
BOOL IsOneDayPassed1(SYSTEMTIME *stTime,BOOL bChange)
{
SYSTEMTIME stTemp;
BOOL BigYear,BigMonth;
GetLocalTime(&stTemp);
if((stTemp.wYear-stTime->wYear==1) && stTemp.wMonth==1 && stTemp.wDay==1 &&
stTime->wMonth==12 && stTime->wDay==31)
{
if(bChange)
*stTime=stTemp;
//Errmsg("y,12,31");
return TRUE;
}
if(stTime->wYear%4==0 && stTime->wYear%100!=0 || stTime->wYear%400==0)
BigYear=TRUE;
else
BigYear=FALSE;
if((stTime->wMonth<=7 && stTime->wMonth%2!=0) || (stTime->wMonth>=8 && stTime->wMonth%2==0))
BigMonth=TRUE;
else
BigMonth=FALSE;
GetLocalTime(&stTemp);
if((stTemp.wYear==stTime->wYear) && (stTemp.wMonth-stTime->wMonth==1) && stTemp.wDay==1 &&
(stTime->wDay==BigMonth?31:(stTime->wMonth!=2?30:(BigYear?29:28))))
{
if(bChange)
*stTime=stTemp;
return TRUE;
}
GetLocalTime(&stTemp);
if(stTemp.wYear==stTime->wYear && stTemp.wMonth==stTime->wMonth && stTemp.wDay-stTime->wDay==1)
{
if(bChange)
*stTime=stTemp;
//Errmsg("0,0,d");
return TRUE;
}
//GetLocalTime(&stTemp);
//if(stTemp.wYear==szTime->wYear && stTemp.wMonth==stTime->wMonth && stTemp.wDay==stTime->wDay)
// return FALSE;
return FALSE;
}
void DoOneDayPassed1(SYSTEMTIME *stTime,BOOL bChange)
{
SYSTEMTIME stTemp;
BOOL BigYear,BigMonth;
if(stTime->wYear%4==0 && stTime->wYear%100!=0 || stTime->wYear%400==0)
BigYear=TRUE;
else
BigYear=FALSE;
if((stTime->wMonth<=7 && stTime->wMonth%2!=0) || (stTime->wMonth>=8 && stTime->wMonth%2==0))
BigMonth=TRUE;
else
BigMonth=FALSE;
if(stTime->wDay==31 || (stTime->wDay==30 && !BigMonth && stTime->wMonth!=2) ||
(((stTime->wDay==28 && !BigYear) || (stTime->wDay==29 && BigYear)) && stTime->wMonth==2))
{
if(stTime->wMonth!=12)
{
stTime->wMonth++;
stTime->wDay=1;
}
else
{
stTime->wYear++;
stTime->wMonth=stTime->wDay=1;
}
}
else
stTime->wDay++;
if(bChange)
{
GetLocalTime(&stTemp);
stTemp.wYear=stTime->wYear;
stTemp.wMonth=stTime->wMonth;
stTemp.wDay=stTime->wDay;
SetLocalTime(&stTemp);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -