假设有文本信息如:
2015/9/1 10:38:30 hhcqdhwiehfh10 LOGIN
2015/9/1 15:20:23 hhcqdhwiehfh10 LOGOUT
当这样的数据多达上千条时,即有上百个用户进行登录登出时,如何根据上述文本信息来计算各个用户总的在线时长呢?
首先,先认识并熟悉有关文本信息处理的函数和类:
#include <fstream> //读入读出文本头文件
if stream 文件变量名("文件名");
文件变量名.open("文件名");
文件变量名.eof()
文件变量名>>变量名 //读入数据
文件变量名.close();
从上述文本信息我们不难发现,如果我们想统计用户在线时长,则相应的对用户登入和登出的时间计算其时间差,在这里,我们可以做一个结构体来记录每个用户的时间。
struct Time_t
{
int year,month,day;
int hour,minute,second;
};
并且,我们可以设置一个函数来计算每次登入登出的时间差
int Timedifference (Time_t s,Time_t t)
{
int days[12]={
31,28,31,30,31,30,31,31,