前言: 代码如下: #include <time.h> int main() { // // /*获取系统前一天日期*/ /*获取指定文件夹下的指定格式的文件(E或NE开头的时间为前一天的文件)*/ /*解析文件并写入数据库*/ char buf[BUFSIZE];/*单行数据缓存*/ char yhbh[4];/*银行编号*/ char temp[1024];// if((fp = fopen(filePath, “r”)) == NULL) { // 判断文件名是以E开头还是NE开头的 char *ne = “NE”; sql_BeginTrans(); //sql_BeginTrans(); |
|
100分 |
获取前一天不能简单地将日期减一。
|
那要怎么做? |
|
#include <stdio.h> #include <windows.h> char *getYesterday() { FILETIME ft; SYSTEMTIME st; static char yesterday[9]; GetSystemTimeAsFileTime(&ft); *(__int64 *)&ft-=864000000000i64; FileTimeToSystemTime(&ft,&st); sprintf(yesterday,"%4d%02d%02d",st.wYear, st.wMonth, st.wDay); return (char *)yesterday; } int main() { printf("%s\n",getYesterday()); return 0; } |
|
如果是在Linux下就不能用了吧,我看这边引了windows.h |
|
在请教下哈
GetSystemTimeAsFileTime(&ft); *(__int64 *)&ft-=864000000000i64; FileTimeToSystemTime(&ft,&st); 这个是个什么意思? |
|
你一楼给的代码里面不是也用了SYSTEMTIME吗?linux下有SYSTEMTIME? |
|
说 |
|
GetSystemTimeAsFileTime(&ft);//取当前系统时间放在ft中 *(__int64 *)&ft-=864000000000i64;//将ft减去86400秒 FileTimeToSystemTime(&ft,&st);//将ft转为st |
|
|
|
对于头文件的引用,不晓得下面这些正确吗?
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <dirent.h> #include <time.h> #include <sqlca.h> |
|
你代码中:
// 连接数据库并插入数据 EXEC SQL CONNECT GAPS/GAPS; 需要进一步编写函数完成对应功能。 参考oracle中的例子代码demo\*.* |
|
fprintf(sql,”insert into yw_dsdf_dzxx_hb values(“”%s””,””%s””,””%s””,””%s””,””%s””,””%d””,””%s””,””%d””)”,yhbh,gyh,yhlsh,yhbh_1,jfrq,sfje,sfqd,isznbsf); EXEC SQL INSERT INTO yw_dsdf_dzxx_hb values(sql); |
|
参考oracle中的例子代码demo\*.*
|
|
参考了demo例子,还是出现那个问题,在引入sql头文件时, |
|
先将demo目录下插入数据的例子编译链接调试通过,再将其中操作数据库相关部分照搬到自己的代码中。
|
|
突然回来结个贴。不好意思,问题解决了。
|
|
迟来的幸福!
|