2个回答
展开全部
容易理解的方法:
CTime类用于获得系统的时间,系统的时间是宴罩一个64位的整数,他桥陪记录从1970年1月1日到当前时间的秒数,获得该数值的方法是
CTime t_now = CTime::GetCurrentTime();
time_t t_sec_now = t_now.GetTime();
如果你需要从这个64位整数重新构造CTime对象,只需要调用其构造函数即可:
CTime some_time(t_sec_now);
这样你就可以通过
some_time.GetDay();
some_time.GetHour();
等一系列CTime的函数获得需要的信息。
现在你需要保存到文件里去,调用CFile类即可
CFile file;
if (file.Open(_T("somefile.dat"), CFile::modeCreate|CFile::modeWrite, NULL))
{
file.Write(&t_sec_now, sizeof(t_sec_now)); //写入二进制文件
file.Close();
}
读取就反过来,先打开文件,然后调用CFile::Read读取。
---------------------------------------------
若你理解序列化等内容,可以直接调用CTime的序列化功能保存CTime对象,读取的时候直接生成CTime对象即可。
CTime t_now = CTime::GetCurrentTime();
CFile file(_T("time.dat"), CFile::modeCreate|CFile::modeWrite);
CArchive ar(&file, CArchive::store);
t_now.Serialize64(ar);
ar.Close();
file.Close();
读取的时候以读的方式打开文件,CArchive以CArchive::load创建对象即可读取CTime对象。
以上代码省略了处理文件异常的内容,最好利用晌消闹try catch快和CFileException或者CArchiveException来处理文件打开或者读写可能产生的一场。
CTime类用于获得系统的时间,系统的时间是宴罩一个64位的整数,他桥陪记录从1970年1月1日到当前时间的秒数,获得该数值的方法是
CTime t_now = CTime::GetCurrentTime();
time_t t_sec_now = t_now.GetTime();
如果你需要从这个64位整数重新构造CTime对象,只需要调用其构造函数即可:
CTime some_time(t_sec_now);
这样你就可以通过
some_time.GetDay();
some_time.GetHour();
等一系列CTime的函数获得需要的信息。
现在你需要保存到文件里去,调用CFile类即可
CFile file;
if (file.Open(_T("somefile.dat"), CFile::modeCreate|CFile::modeWrite, NULL))
{
file.Write(&t_sec_now, sizeof(t_sec_now)); //写入二进制文件
file.Close();
}
读取就反过来,先打开文件,然后调用CFile::Read读取。
---------------------------------------------
若你理解序列化等内容,可以直接调用CTime的序列化功能保存CTime对象,读取的时候直接生成CTime对象即可。
CTime t_now = CTime::GetCurrentTime();
CFile file(_T("time.dat"), CFile::modeCreate|CFile::modeWrite);
CArchive ar(&file, CArchive::store);
t_now.Serialize64(ar);
ar.Close();
file.Close();
读取的时候以读的方式打开文件,CArchive以CArchive::load创建对象即可读取CTime对象。
以上代码省略了处理文件异常的内容,最好利用晌消闹try catch快和CFileException或者CArchiveException来处理文件打开或者读写可能产生的一场。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询