C++ task.h

这个博客介绍了C++中的Task类,包含了时间戳、ID和日志文件管理。类提供了构造函数、设置和获取时间戳的方法,以及记录任务到日志文件的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include "TimeStamp.h"
#include <iostream>
#include <ctime>
#include <fstream>
#include <string>
using namespace std;

class Task{
private:
	Task();//default constructor explicitly hidden
	TimeStamp st;
	TimeStamp ft;
	string id;
	string logFile;
public:
	//constructors-destructor
	Task(const string& ID){
		setID(ID);
		logFile = "log.dat";
		setST();
		ft = st;//no duration yet
	}

	Task(const char* ID){
		Task(string(ID));
	}

	~Task(){logToFile();}
	
	//set-get method
	void setST(time_t ST=0){st.set(ST);}
	void getST() const {return st.get();}
	string getStrST() const { return st.getAsString(); }
   void setFT( time_t FT = 0 ) { ft.set( FT ); }
   time_t getFT() const { return ft.get(); }
   string getStrFT() const { return ft.getAsString(); }
   void setID( const string& ID ) { id = ID; }
   void setID( const char* ID ) { id = ID; }
   string getID() const { return id; }
   double getDU() const { return difftime( getFT(), getST() ); }
   void logToFile(){
	   if(getFT() == getST())
		   setFT();
	   ofstream outfile(logFile.c_str(), ios::app);
	   outfile << "\nID: " << id << '\n';
      outfile << "  ST: " << getStrST();
      outfile << "  FT: " << getStrFT();
      outfile << "  DU: " << getDU(); 
      outfile << '\n';
      outfile.close(); //*** just to be safe!
   }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值