|
// *********************************************************
// 文字列日付を Dos 形式の日付に変換する
// 戻り値 : true 成功, false 失敗
// *********************************************************
BOOL LboxString::ToDosDate( LPWORD lpFatDate, LPWORD lpFatTime )
{
LboxToken Ltoken;
LboxString LString;
int nWork;
Ltoken.CreateToken( this->szLboxString, "/" );
if ( Ltoken.nCount < 3 ) {
return false;
}
LString.operator = (Ltoken.Token[0]);
nWork = LString.Atoi();
if ( ( nWork - 1980 ) < 0 ) {
nWork = nWork + 2000;
}
nWork = nWork - 1980;
WORD wYear;
WORD wMonth;
WORD wDay;
wYear = (WORD)nWork;
wYear = wYear << 9;
LString.operator = (Ltoken.Token[1]);
nWork = LString.Atoi();
wMonth = (WORD)nWork;
wMonth = wMonth << 5;
LString.operator = (Ltoken.Token[2]);
nWork = LString.Atoi();
wDay = (WORD)nWork;
WORD wDate;
WORD wTime;
wDate = wYear | wMonth | wDay;
wTime = 0;
FILETIME ft;
BOOL bRet;
bRet = DosDateTimeToFileTime(
wDate,
wTime,
&ft
);
if ( !bRet ) {
return false;
}
(*lpFatDate) = wDate;
(*lpFatTime) = wTime;
return true;
}
| |