`
dazhilao
  • 浏览: 239589 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【转】c语言时间转换,字符串转秒或时间结构体

阅读更多
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define IN 
#define OUT
//比较周数,成功返回0-6的数,错误返回7
//p代表周数,取周数前3个字母,如Mon代表周1,以此类推
//改动周几不影响返回的时间值,可以通过改动日期的日数来达到修改时间
int weekcmp( IN char *p)
{
        char week[8][4]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
        int i;
        

  for(i=0;i<7;i++)
        if(strcmp(p,week[i])==0)
                        break;
        
        if(i==7)
        {
                printf("fail to find week.\n");
                return i;
        }
                return i;
}
//比较月份,成功返回0-11的数,错误返回12
//P 为月份的前三个字母,如Feb代表二月,以此类推
int monthcmp( IN char *p)
{
        char month[13][4]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
        
        int i;
        for(i=0;i<12;i++)
                if(strcmp(p,month[i])==0)
                        break;
        if(i==12)
        {
                printf("fail to find month.\n");
                return i;
        }
        return i;
}
//将字串格式的时间转换为结构体,返回距离1970年1月1日0:0:0的秒数,当字符串格式错误或超值时返回0
//BUF 为类似Tue May 15 14:46:02 2007格式的,p为时间结构体
time_t timeconvert(IN char *buf,OUT struct tm *p)
{

        char cweek[4];
        char cmonth[4];
        time_t second;

        sscanf(buf,"%s %s %d %d:%d:%d %d",cweek,cmonth,&(p->tm_mday),&(p->tm_hour),&(p->tm_min),&(p->tm_sec),&(p->tm_year));
        p->tm_year-=1900;
        printf("****%s,%s*****\n",cweek,cmonth);
        p->tm_mon=monthcmp(cmonth);
        //改动周几不影响返回的时间值,可以通过改动日期的日数来达到修改时间
        p->tm_wday=weekcmp(cweek);
        if(p->tm_mon==12&&p->tm_wday==7)
        {
                printf("monthcmp() or weekcmp() fail to use.\n");
                return 0;
        }
        return second=mktime(p);
}

int main()
{
        long second;
        char buf[]="Fri Jan 16 15:46:02 2007";
		struct tm time1;
        second = timeconvert(buf,&time1);
		printf("year:%d, month:%02d, day:%02d\n",time1.tm_year+1900,time1.tm_mon+1,time1.tm_mday);
        printf("second=%d\n",second);
        return 0;
}
分享到:
评论

相关推荐

    C语言实现的 json格式字符串与结构体自动相互转化

    在cjson基础上,实现了字符串与结构体自动相互转化的功能。 可以自动将字符串(JSON格式)转化为对应的结构体,反之亦可。

    利用串口传输结构体数据

    结构体是一种数据的归类方式,相比数组或变量更具有整体全面性,例如一个数组只可以放一些按照元素顺序存放的单元变量,即 buffer = {x, x, x, x, x…},i 有多大,数组内元素就有多少。那么我们这时候如果我们用这...

    大小端转换(C++)

    提供一个大小端转换的类,可以转换short int float double类型,提供一个大小端转换的类,可以转换short int float double类型,提供一个大小端转换的类,可以转换short int float double类型

    明解C语言(第3版)入门篇.[日]柴田望洋(带详细书签).pdf 【半高清】

    atoi函数、atol函数、atof函数:转换字符串 333 总结 336 第12章 结构体 339 12-1 结构体 340 数据关联性 340 结构体 342 结构体成员和运算符 344 成员的初始化 345 结构体成员和-&gt;运算符 346 结构体和...

    传智播客C语言课件

    6.指针,指针与地址,指针与数组,指针与字符串,指针与函数,多重指针 7.结构体,共用体,枚举,typedef,宏定义,预编译,文件包含,条件编译 8.内存分析,作用域,生存期,可见域,C语言调试,排错,分析技巧

    谭浩强C语言设计第三版.pdf

     4.4.1 字符串宏定义及其基本格式  4.4.2 使用宏需注意的问题  4.4.3 撤销己定义的宏  4.4.4 带参数的宏定义  习题四 第5章 数组  5.1 一维数组  5.1.1 一维数组定义及数组元素引用  5.1.2 数组元素的引用...

    c语言难点分析整理,C语言

    16. C语言字符串函数大全 68 17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 ...

    C语言基础习题及其答案

    此外,文档中还涉及了预处理指令、结构体、字符串操作等高级主题,有助于提高编程技巧和问题解决能力。总的来说,这是一份适合于C语言学习者的实用参考资料,能够帮助学习者系统地掌握C语言的核心概念和编程实践。

    C语言程序设计(PDF格式)

    2.5.2 字符串常量 19 2.5.3 转义字符 20 2.5.4 符号常量 20 2.5.5 字符变量 21 2.6 运算符 22 2.6.1 算术运算符 22 2.6.2 自增和自减 22 2.6.3 关系和逻辑运算符 23 2.6.4 位操作符 24 2.6.5 ?操作符 26 2.6.6 逗号...

    谭浩强c语言程序设计

    10.4 字符串的指针指向字符串的针指变量 150 10.4.1 字符串的表示形式 152 10.4.2 使用字符串指针变量与字符数组的区别 158 10.5 函数指针变量 159 10.6 指针型函数 160 10.7 指针数组和指向指针的指针 161 10.7.1 ...

    c语言经典案例

    实例097 计算字符串中有多少个单词 126 实例098 不使用strcpy()函数实现 字符串复制功能 127 实例099 逆序存放数据 129 实例100 相邻元素之和 130 实例101 选票统计 131 实例102 使用数组统计学生成绩 132 实例103 ...

    c语言经典源码例子100篇

    实例39 字符串指针 实例40 函数指针 实例41 指针数组 实例42 二维指针 实例43 指针的初始化 实例44 综合实例 第二篇 深入提高篇 实例45 结构体变量 实例46 结构体数组 实例47 结构体指针变量 实例48 结构体指针...

    高级C语言详解

    16. C语言字符串函数大全 68 17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 ...

    C语言程序设计(高清PDF)

    2.5.2 字符串常量 19 2.5.3 转义字符 20 2.5.4 符号常量 20 2.5.5 字符变量 21 2.6 运算符 22 2.6.1 算术运算符 22 2.6.2 自增和自减 22 2.6.3 关系和逻辑运算符 23 2.6.4 位操作符 24 2.6.5 ?操作符 26 2.6.6 逗号...

    史上最强的C语言资料

    16. C语言字符串函数大全 68 17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 ...

    C语言难点分析整理

    16. C语言字符串函数大全 68 17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 ...

    谭浩强 C语言程序设计 教程全书 Word版

    10.4 字符串的指针指向字符串的针指变量 25 10.4.1 字符串的表示形式 25 10.4.2 使用字符串指针变量与字符数组的区别 28 10.5 函数指针变量 29 10.6 指针型函数 30 10.7 指针数组和指向指针的指针 31 10.7.1 指针...

    C语言中的一些算法和面试题

    2. 字符串处理:字符串的基本操作、模式匹配、字符串编码等。 3. 数值计算:大数运算、进制转换、数值处理等。 4. 位运算:利用位运算进行编码、加密、压缩等。 5. 递归与动态规划:利用递归思想和动态规划解决复杂...

    谭浩强版c语言程序设计

    10.4 字符串的指针指向字符串的针指变量 150 10.4.1 字符串的表示形式 152 10.4.2 使用字符串指针变量与字符数组的区别 158 10.5 函数指针变量 159 10.6 指针型函数 160 10.7 指针数组和指向指针的指针 161 10.7.1 ...

    《C语言程序设计》-PDF格式

    2.5.2 字符串常量 19 2.5.3 转义字符 20 2.5.4 符号常量 20 2.5.5 字符变量 21 2.6 运算符 22 2.6.1 算术运算符 22 2.6.2 自增和自减 22 2.6.3 关系和逻辑运算符 23 2.6.4 位操作符 24 2.6.5 ?操作符 26 2.6.6 逗号...

Global site tag (gtag.js) - Google Analytics