论坛: 编程破解 标题: 求倒记时代码一个-精确到秒 复制本贴地址    
作者: ssln [ssln]    论坛用户   登录
不要北京奥运会那种
谢谢

地主 发表时间: 05-01-07 19:37

回复: ssln [ssln]   论坛用户   登录
帮帮偶嘛

B1层 发表时间: 05-01-22 08:16

回复: kert_t8 [kert_t8]   论坛用户   登录
代码:

// chartoin.c
#include "chartoin.h"
int ctoint(char digit_10, char digit_1) {
int c;
c=toascii(digit_1)-48;
c+=10*(toascii(digit_10)-48);
return c;
}


// main.c
#include <stdio.h>
#include <time.h>
#include "timeParser.c"

int main(int argc, char *argv[]) {
struct time *myTime;
int secDur;
time_t timeNow, timeBegin, timeTemp;
myTime=malloc(sizeof(struct time));
myTime=timeParser(myTime, argv[1]);
secDur=timetosec(myTime);
time(&timeBegin);
printf("Begin:");
time(&timeNow);
timeTemp=timeNow;
while (timeNow-timeBegin<secDur) {
time(&timeNow);
if (timeNow-timeTemp>=1) {
printf("%s\n",ctime(&timeNow));
timeTemp=timeNow;
}
}
}


// timeParser.c
#include "timeParser.h"

struct time *timeParser(struct time *myTime, char *timeString) {
        int i;                                  // for Loop
        int tmp[3];
        char d_1,d_10;
        char *strPointer;
        strPointer=timeString;
        for(i=0;i<3;i++) {
                d_10=*strPointer++;
                d_1=*strPointer++;
                tmp[i]=ctoint(d_10,d_1);
                strPointer++;                  // skip the `:'
        }
        myTime->hur=tmp[0];
        myTime->min=tmp[1];
        myTime->sec=tmp[2];
        return myTime;
}

int timetosec(struct time *timePot) {
int timeRet=timePot->sec;
timeRet+=timePot->min*60;
timeRet+=timePot->hur*3600;
return timeRet;
}




// chartoin.h
#include<stdio.h>
int ctoint(char digit_10, char digit_1);

// timeParser.h
#include "chartoin.c"

struct time {
        int sec;
        int min;
        int hur;
};

struct time *timeParser(struct time *myTime, char *timeString);





不同的代码应该放到对应的不同的文件里面去

[此贴被 月之御者(kert_t8) 在 01月22日09时09分 编辑过]

B2层 发表时间: 05-01-22 09:08

回复: kert_t8 [kert_t8]   论坛用户   登录
只是一个模型,没有错误检测,所以测试的时候要小心了

引用:

ding@ui01:~/cpractice/counter>./a.out 00:00:05
Begin:Fri Jan 21 17:59:31 2005

Fri Jan 21 17:59:32 2005

Fri Jan 21 17:59:33 2005

Fri Jan 21 17:59:34 2005

Fri Jan 21 17:59:35 2005

ding@ui01:~/cpractice/counter>




以上是我的测试结果

输出的时候你可以做一些修改,使得在同一位置输出,避免刷屏。输入参数一定要按照上面给的各式输入
时:分:秒,不够两位的要加零!!

基本上就这些。最近做的东西有一部分牵涉到时间的处理,顺便就做了,捡个耙耙挣点分,嘿嘿,做得不认真不仔细的地方请批评

B3层 发表时间: 05-01-22 09:16

回复: kert_t8 [kert_t8]   论坛用户   登录
本来延时的部分想用sleep来做,但是后来发现sleep完了以后那一秒就已经过去了,测试的时候就出现跳动现象

另外,我突然在想,楼主不会是想让我做一个钟在那儿转吧?暴寒!

B4层 发表时间: 05-01-22 09:19

回复: ssln [ssln]   论坛用户   登录
谢谢嘎嘎

俺档次还不够看不懂啊
谢谢侬

B5层 发表时间: 05-01-30 10:23

回复: 286 [unique]   版主   登录
用定时器,每秒产生一次。


B6层 发表时间: 05-01-31 09:36

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号