time.h
admin
2024-05-09 15:32:15
0
    1. Time.h
      1. Time_t

Time_t 它本身是一个long 类型

Time(time_t *time_t) 是给一个time_t变量赋值为当前数据

Time_t now;

Time(&now);

      1. Struct tm

这个tm结构体,里面放了year month  day  hour minute second

struct tm

{

  int tm_sec; /* Seconds. [0-60] (1 leap second) */

  int tm_min; /* Minutes. [0-59] */

  int tm_hour; /* Hours. [0-23] */

  int tm_mday; /* Day. [1-31] */

  int tm_mon; /* Month. [0-11] */

  int tm_year; /* Year - 1900.  */

  int tm_wday; /* Day of week. [0-6] */

  int tm_yday; /* Days in year.[0-365] */

  int tm_isdst; /* DST. [-1/0/1]*/

}

      1. Localtime

extern struct tm *localtime (const time_t *__timer) __THROW;

localtime可以把time_t(long)转换成一个结构体

Struct tm *t = localtime(&now);

Localtime(&now)转换的当前时间给tm  year = 真实year-1900

Month = 真实month -1

      1. Mktime

  extern time_t mktime (struct tm *__tp) __THROW;

Mktime把结构体 tm转换成 time_t

time_t convertToTime_t(int year,int month,int day,int hour,int minute,int seconds){

    struct tm info = {0};

    info.tm_year = year-1900;(需要-1900)

    info.tm_mon = month-1; (需要月份-1)

    info.tm_mday = day;

    info.tm_hour = hour;

    info.tm_min = minute;

    info.tm_sec = seconds;

    time_t t=  mktime(&info);

    return t;

}

      1. Gmtime

/* Return the `struct tm' representation of *TIMER

   in Universal Coordinated Time (aka Greenwich Mean Time).  */

extern struct tm *gmtime (const time_t *__timer) __THROW;

这个与localtime()区别就是它获取的时间hour需要-8

      1. Ctime  asctime()

都是返回字符串

#include
#include
#include
#include
#include
#include
#include
#include
#include        /* sqrt */


void time_to_long();
char *formate_current_date();
int diffday(time_t t1,time_t t2);

void time_to_long(){
    
    time_t timep;
    struct tm *p;
    time(&timep);
    p = gmtime(&timep);

    long longsec = 1000;
    long longmin = 60 *1000;
    long longhour = 60 * 60 * 1000;
    long day = 24 * 60 * 60 * 1000;
    // long month =  

    // long ss = p->tm_sec * 1000+ p->tm_min*60*1000 + (8+p->tm_hour)*60*60*1000;
    
    printf("aaa\n");
}

char *formate_current_date(){

    time_t timep;
    struct tm *p;
    struct tm *info;
    // char time1[28];
    char * time1 = (char *)calloc(28,sizeof(char *));
    time(&timep);
    info = localtime(&timep);
    p = gmtime(&timep);
    
    /**年需要+1900  月需要+1   小时需要+8 注意日期需要选m_day*/
    /**这个time1使用的是calloc,需要在调用的地方free(time1),释放内存*/
    sprintf(time1,"%d-%d-%d %d:%d:%d",1900+p->tm_year,1+p->tm_mon,p->tm_mday,8+p->tm_hour,p->tm_min,p->tm_sec);
    printf("time1 %s\n",time1);

    return time1;
}

// void getCurretTime(){

//     struct timeval tv;

//     gettimeofday(&tv,NULL);

//     int aa = tv.tv_sec * 1000 + tv.tv_usec / 1000;
//     printf("getCurretTime: %d\n",aa);
//     return tv.tv_sec * 1000 + tv.tv_usec / 1000;

// }

long getCurrentTime2(){
    time_t now;
    time(&now);
    printf("now:%ld\n",now);
    printf("now:%ld\n",now);
    long ss = now;
    // 1673244657   1673244537
    long sa = (ss*1000) -(1673244537 * 1000);
    printf("ssss:%ld \n",ss);
    printf("ssssaaaaa:%ld \n",sa);
    return sa;
}

char * getName(){
    char * name = "myname is name";
    return name;
}

char *getName2(){
    char name[] = "fefefe";
    return name;
}

time_t convertToTime_t(int year,int month,int day,int hour,int minute,int seconds){

    time_t now;
    time(&now);
    // struct tm *info = {0};
    // info->tm_year = year-1900;
    // info->tm_mon = month-1;
    // info->tm_mday = day;
    // info->tm_hour = hour-8;
    // info->tm_min = minute;
    // info->tm_sec = seconds;
    // time_t t=  mktime(info);

    struct tm info = {0};
    info.tm_year = year-1900;
    info.tm_mon = month-1;
    info.tm_mday = day;
    info.tm_hour = hour;
    info.tm_min = minute;
    info.tm_sec = seconds;
    time_t t=  mktime(&info);
    return t;
}

void testlocaltime(){

    // time_t now;
    // time(&now);
    // time_t now2;
    // struct tm * tm2 = localtime(&now2);
    // struct tm * tm = localtime(&now);
    // printf("aaaa %s \n",asctime(tm))  ;
    // printf("bbbbb %s \n",asctime(tm2))  ;
    // printf("aaa\n");

    
    // double aa = difftime(convertToTime_t(1999,10,10,0,0,0),convertToTime_t(1980,3,3,0,0,0));
    // printf("aaaadfdfdf:%d\n",aa);

    // int diff = diffday(convertToTime_t(1999,10,10,0,0,0),convertToTime_t(1980,3,3,0,0,0));
    // printf("bbbb diff %d\n",diff);

    // time_t now;
    // struct tm *tm = localtime(&now);
    // printf("asctime(tm) :%s \n",asctime(tm));  //这个样子不对,需要给now赋值才行

    time_t now;
    time(&now);//赋值当前时间
    struct tm *t = localtime(&now);
    printf("asctime(tm) :%s \n",asctime(t));

    time_t p = convertToTime_t(1998,10,10,13,14,15);
    struct tm *info = localtime(&p);
    printf("pppp: %ld\n",p);
    printf("asctime(info) :%s \n",asctime(info));

    time_t now2;
    time(&now2);
    printf("citme sss %s\n",ctime(&now2));

}

int diffday(time_t t1,time_t t2){
    int diff = (int)(t1-t2);
    return diff/(24*3600);
}


// int frequency_of_primes (int n) {
//   int i,j;
//   int freq=n-1;
//   for (i=2; i<=n; ++i) for (j=sqrt(i);j>1;--j) if (i%j==0) {--freq; break;}
//   return freq;
// }

void testclock(){
    clock_t t;
    int f;
    t = clock();
    printf ("Calculating...\n");
    // f = frequency_of_primes(99999);
    // printf ("The number of primes lower than 100,000 is: %d\n",f);
    t = clock()-t;
    // printf ("It took me %d clicks (%f seconds).\n",t,((float)t)/CLOCKS_PER_SEC);
}


int main(){

    // https://blog.csdn.net/xuehuafeiwu123/article/details/77944893
    // https://blog.csdn.net/weixin_29938067/article/details/117118688
    printf("test2222222\n");
    time_to_long();
    formate_current_date();
    // getCurretTime();
    long sese =  getCurrentTime2();
    long sesqq = 10;
    printf("sesqq :%ld\n",sesqq);
    printf("sese :%d\n",sese);
    char *myname = getName();
    printf("myname %s\n",myname);

    char *name2222 = getName2();
    printf("name222 %s\n",name2222);
    time_t t = convertToTime_t(1980,3,10,15,13,22);
    printf("time_ttime_t %d\n",t);
    testlocaltime();
    testclock();
    // frequency_of_primes(99999);
    return 0;
}

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...