千家信息网

C语言标准时间与秒单位怎么相互转换

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,今天小编给大家分享一下C语言标准时间与秒单位怎么相互转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2025年01月16日C语言标准时间与秒单位怎么相互转换

今天小编给大家分享一下C语言标准时间与秒单位怎么相互转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1. 时间转换-秒与标准时间的转换

1.时间转换(秒与标准时间的转换)
(1)函数1: 将秒单位时间转为标准时间。 --RTC实时时钟—>秒为单位—>每秒钟cnt++;
237562867493 -----xxxx年xx月xx日xx时xx分xx秒 星期x。

示例代码: (模拟电子钟)

#include #include   //字符串处理#include  //时间单位int year,mon,mdeay,hour,min,t_sec;//闰年的月份int mon_r[12]={31,29,31,30,31,30,31,31,30,31,30,31};//平年的月份int mon_p[12]={31,28,31,30,31,30,31,31,30,31,30,31};unsigned int TimeToSec(int year,int mon,int mdeay,int hour,int min,int sec);void SecToTime(unsigned int sec);int main(void){        //将标准时间转为秒单位时间  (设置时间)        unsigned int time=TimeToSec(2018,6,6,16,40,20);                while(1)        {                time++;                Sleep(1000); //睡眠1秒时间。 单位是ms                SecToTime(time);                printf("%d-%d-%d %d:%d:%d\n",year,mon,mdeay,hour,min,t_sec);        }        return 0;}/*函数功能: 判断平年和闰年函数返回值: 1表示闰年  0表示平年*/int GetYearStat(int year){        if((year%4==0&&year0!=0)||year%400==0)return 1; //闰年        return 0; //平年}/*将秒单位时间转为标准时间时间基准点: 1970年1月1日0时0分0秒思想: 减法*/void SecToTime(unsigned int sec){        int i;        year=1970; //基准年份        /*1. 计算过了多少年*/        while(sec>=365*24*60*60) //秒还够一年        {                if(GetYearStat(year)) //闰年                {                        if(sec>366*24*60*60)                        {                                sec-=366*24*60*60; //减去一年                                year++; //年份累加                        }                        else                        {                                break;                        }                }                else                {                        sec-=365*24*60*60; //减去一年                        year++; //年份累加                }        }        /*2. 计算过了多少月*/        mon=1;        if(GetYearStat(year)) //闰年        {                for(i=0; i<12; i++)                {                        if(sec>=mon_r[i]*24*60*60) //够一个月                        {                                sec-=mon_r[i]*24*60*60; //减去一个月                                mon++;//增加一个月                        }                        else break;                }        }        else        {                for(i=0; i<12; i++)                {                        if(sec>=mon_p[i]*24*60*60) //够一个月                        {                                sec-=mon_p[i]*24*60*60; //减去一个月                                mon++;//增加一个月                        }                        else break;                }        }                /*3. 计算过了多少天*/        mdeay=1;        while(sec>=24*60*60) //判断是否够一天        {                sec-=24*60*60;                mdeay++;        }        /*4. 过了多少小时*/        hour=0;        while(sec>=60*60)        {                sec-=60*60;                hour++;        }        /*5. 过了多少分钟*/        min=0;        while(sec>=60)        {                sec-=60;                min++;        }        /*6. 过了多少秒*/        t_sec=sec; }/*将标准时间转为秒单位时间思路: 全程加法时间基准点: 1970年1月1日0时0分0秒返回值: 得到的秒单位时间*/unsigned int TimeToSec(int year,int mon,int mdeay,int hour,int min,int sec){        int i;        int sec_cnt=0; //记录秒单位的时间        /*1. 转换年*/        for(i=1970; i

完整的代码(添加星期):

#include #include   //字符串处理#include  //时间单位int year,mon,mdeay,hour,min,t_sec,week;//闰年的月份int mon_r[12]={31,29,31,30,31,30,31,31,30,31,30,31};//平年的月份int mon_p[12]={31,28,31,30,31,30,31,31,30,31,30,31};unsigned int TimeToSec(int year,int mon,int mdeay,int hour,int min,int sec);void SecToTime(unsigned int sec);int GetWeek(unsigned int sec);int main(void){    //将标准时间转为秒单位时间  (设置时间)    unsigned int time=TimeToSec(2018,9,1,16,40,20);    while(1)    {        time++;        Sleep(1000); //睡眠1秒时间。 单位是ms        SecToTime(time);        week=GetWeek(time); //获取星期        printf("%d-%d-%d %d:%d:%d 星期%d\n",year,mon,mdeay,hour,min,t_sec,week);    }    return 0;}/*函数功能: 判断平年和闰年函数返回值: 1表示闰年  0表示平年*/int GetYearStat(int year){    if((year%4==0&&year0!=0)||year%400==0)return 1; //闰年    return 0; //平年}/*将秒单位时间转为标准时间时间基准点: 1970年1月1日0时0分0秒思想: 减法*/void SecToTime(unsigned int sec){    int i;    year=1970; //基准年份    /*1. 计算过了多少年*/    while(sec>=365*24*60*60) //秒还够一年    {        if(GetYearStat(year)) //闰年        {            if(sec>366*24*60*60)            {                sec-=366*24*60*60; //减去一年                year++; //年份累加            }            else            {                break;            }        }        else        {            sec-=365*24*60*60; //减去一年            year++; //年份累加        }    }    /*2. 计算过了多少月*/    mon=1;    if(GetYearStat(year)) //闰年    {        for(i=0; i<12; i++)        {            if(sec>=mon_r[i]*24*60*60) //够一个月            {                sec-=mon_r[i]*24*60*60; //减去一个月                mon++;//增加一个月            }            else break;        }    }    else    {        for(i=0; i<12; i++)        {            if(sec>=mon_p[i]*24*60*60) //够一个月            {                sec-=mon_p[i]*24*60*60; //减去一个月                mon++;//增加一个月            }            else break;        }    }        /*3. 计算过了多少天*/    mdeay=1;    while(sec>=24*60*60) //判断是否够一天    {        sec-=24*60*60;        mdeay++;    }    /*4. 过了多少小时*/    hour=0;    while(sec>=60*60)    {        sec-=60*60;        hour++;    }    /*5. 过了多少分钟*/    min=0;    while(sec>=60)    {        sec-=60;        min++;    }    /*6. 过了多少秒*/    t_sec=sec; }

2. 时间转换-标准时间转秒

(2)函数2: 将标准时间转为秒单位的时间。
2018年6月1日19点41分23秒----------xxxxxxx秒
闰年366,平年365。 区分: 每年二月份相差一天.
标准时间基准点: 1970年1月1日0时0分0秒。

/*将标准时间转为秒单位时间思路: 全程加法时间基准点: 1970年1月1日0时0分0秒返回值: 得到的秒单位时间*/unsigned int TimeToSec(int year,int mon,int mdeay,int hour,int min,int sec){        int i;        int sec_cnt=0; //记录秒单位的时间        /*1. 转换年*/        for(i=1970; i

以上就是"C语言标准时间与秒单位怎么相互转换"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

0