#include "epm_handler_common.h" #include #include #include "dos.h" #include "sstream" #include #include #include "time.h" #include "stdio.h" #include extern "C" int POM_AM__set_application_bypass(logical bypass); using namespace std; #define DOFREE(obj) \ { \ if(obj) \ { \ MEM_free(obj); \ obj = NULL; \ } \ } string intToString(int a){ stringstream ss; ss << a; string str = ss.str(); return str; } int JL_Add_FinishTime(EPM_action_message_t msg){ int ifail = ITK_ok,count = 0; tag_t *sub = NULLTAG,rootTask = NULLTAG; char *name = NULL; cout << "开始执行" << endl; //获取任务对象 EPM_ask_root_task(msg.task, &rootTask); //得到当前时间 struct tm *local; time_t t; t=time(NULL); local=localtime(&t); cout << local <tm_year <tm_mon <tm_mday <tm_hour <tm_min<tm_sec<tm_wday<tm_hour > 12 && local->tm_hour <=23){ if(local->tm_mon == 0 || local->tm_mon == 2 || local->tm_mon == 4 || local->tm_mon == 6 || local->tm_mon == 7 || local->tm_mon == 9 || local->tm_mon == 11 ){ if(local->tm_wday == 5){ //该天是星期五(+3天) if(local->tm_mday < 29){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+1); sprintf(day, "%d", local->tm_mday+3); } //29号 else if(local->tm_mday == 29){ //12月 if(local->tm_mon == 11){ sprintf(year, "%d", local->tm_year+1901); sprintf(month, "%d", 1); sprintf(day, "%d", 1); } else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 1); } } //30号 else if(local->tm_mday == 30){ //12月 if(local->tm_mon == 11){ sprintf(year, "%d", local->tm_year+1901); sprintf(month, "%d", 1); sprintf(day, "%d", 2); } else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 2); } } //31号 else{ //12月 if(local->tm_mon == 11){ sprintf(year, "%d", local->tm_year+1901); sprintf(month, "%d", 1); sprintf(day, "%d", 3); } else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 3); } } } else{ //不是星期五(+1天) if(local->tm_mday < 31){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+1); sprintf(day, "%d", local->tm_mday+1); } else{ //12月31号 if(local->tm_mon == 11){ sprintf(year, "%d", local->tm_year+1901); sprintf(month, "%d", 1); sprintf(day, "%d", 1); } else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 1); } } } } else if(local->tm_mon == 3 || local->tm_mon == 5 || local->tm_mon == 8 || local->tm_mon == 10){ if(local->tm_wday == 5){ if(local->tm_mday < 28){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+1); sprintf(day, "%d", local->tm_mday+3); } //28号 else if(local->tm_mday == 28){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 1); } //29号 else if(local->tm_mday == 29){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 2); } //30号 else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 3); } } else{ if(local->tm_mday < 30){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+1); sprintf(day, "%d", local->tm_mday+1); } else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 1); } } } //2月 else{ //判断是否是闰年(有29天) int leap_year = local->tm_year+1900; //闰年(有29天) if((leap_year % 4 == 0 && leap_year % 100 != 0) || (leap_year % 400 == 0)){ if(local->tm_wday == 5){ if(local->tm_mday < 27){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+1); sprintf(day, "%d", local->tm_mday+3); } //27号 else if(local->tm_mday == 27){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 1); } //28号 else if(local->tm_mday == 28){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 2); } //29号 else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 3); } } else{ if(local->tm_mday < 29){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+1); sprintf(day, "%d", local->tm_mday+1); } else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 1); } } } //不是闰年(28天) else{ if(local->tm_wday == 5){ if(local->tm_mday < 26){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+1); sprintf(day, "%d", local->tm_mday+3); } //26号 else if(local->tm_mday == 26){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 1); } //27号 else if(local->tm_mday == 27){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 2); } //28号 else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 3); } } else{ if(local->tm_mday < 28){ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+1); sprintf(day, "%d", local->tm_mday+1); } else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+2); sprintf(day, "%d", 1); } } } } sprintf(hour, "%d", 12); } //上午接受,下午完成 else{ sprintf(year, "%d", local->tm_year+1900); sprintf(month, "%d", local->tm_mon+1); sprintf(day, "%d", local->tm_mday); sprintf(hour, "%d", 17); //sprintf(min, "%d", local->tm_min); } //string year = intToString(local->tm_year+1900); //string month = intToString(local->tm_mon+1); //string day = intToString(local->tm_mday); //string hour = intToString(local->tm_hour); //string min = intToString(local->tm_min); //string nowTime = year + "年"+month+"月"+day+"日" + hour+":"+min; cout << nowTime <