c语言分秒计算,c语言计算时间差 毫秒

发布时间:2023-01-06

本文目录一览:

  1. c语言度分秒计算
  2. [用C语言编写一个分秒计时器 大侠们 帮帮我!!](#用C语言编写一个分秒计时器 大侠们 帮帮我!!)
  3. 用c语言编一个时钟程序实现时分秒计时功能
  4. [c语言编写 输入一个以秒为单位的时间值,将其转化成“时:分:秒”的形式输出,将转换操作定义成函数](#c语言编写 输入一个以秒为单位的时间值,将其转化成“时:分:秒”的形式输出,将转换操作定义成函数)
  5. C语言如何获取本地时间,然后取时、分、秒的值?

c语言度分秒计算

#include "stdio.h"
void deg(double *r)
{
    double a, b, c;
    a = (int)*r;
    b = (int)(*r * 100) - 100 * a;
    c = ((*r - a) * 100 - b) * 100;
    printf("a=%lf, b=%lf\n,c=%lf\n", a, b, c);
}
main()
{
    double a, *p;
    scanf("%lf", &a);
    p = &a;
    deg(p);
    printf("%lf\n", *p);
}

用C语言编写一个分秒计时器 大侠们 帮帮我!!

这什么东西啊,也太乱了吧!用一个 GetTickCount 这个 API 函数;

GetTickCount 函数

  • 函数功能:返回从操作系统启动到现在所经过的毫秒数,它的返回值是 DWORD
  • 函数原型DWORD GetTickCount(void);
  • C/C++头文件winbase.h
  • windows程序设计中可以使用头文件windows.h

程序示例

#include <stdio.h>
#include <windows.h>
int main()
{
    int i, k, r;
    for (i = 0; i < 10; i++)
    {
        srand(GetTickCount());
        printf("\n");
        for (k = 0; k < 5; k++)
        {
            r = rand();
            printf("%d ", r);
        }
    }
    return 0;
}

注意事项

GetTickCount 函数:它返回从操作系统启动到当前所经过的毫秒数,常常用来判断某个方法执行的时间,其函数原型是 DWORD GetTickCount(void),返回值以 32 位的双字类型 DWORD 存储,因此可以存储的最大值是 2^32 - 1 ms 约为 49.71 天,因此若系统运行时间超过 49.71 天时,这个数就会归 0,MSDN 中也明确的提到了:"Retrieves the number of milliseconds that have elapsed since the system was started, up to 49.7 days."。因此,如果是编写服务器端程序,此处一定要万分注意,避免引起意外的状况。

用c语言编一个时钟程序实现时分秒计时功能

#include <stdio.h>
#include <time.h>
int main()
{
    time_t t1, t2;
    struct tm *ptm;
    char timestr[128] = {'\0'};
    time(&t1);
    while (1)
    {
        time(&t2);
        if (difftime(t2, t1) >= 1)
        {
            system("cls");
            ptm = localtime(&t2);
            strftime(timestr, 128, "%H:%M:%S", ptm);
            printf("%s\n", timestr);
            t1 = t2;
        }
    }
    system("PAUSE");
    return 0;
}

c语言编写 输入一个以秒为单位的时间值,将其转化成“时:分:秒”的形式输出,将转换操作定义成函数

#include <stdio.h>
void trans(int sec)
{
    int hour, min;
    hour = sec / 3600; // 计算时 3600进制
    min = (sec % 3600) / 60; // 计算分 60进制
    sec = (sec % 3600) % 60; // 计算秒 余下的全为秒数
    printf("%d时:%d分:%d秒\n", hour, min, sec);
}
int main()
{
    int sec;
    printf("请输入秒数:\n");
    scanf("%d", &sec);
    trans(sec);
    return 0;
}

可以自己试试。

C语言如何获取本地时间,然后取时、分、秒的值?

C语言有 2 个获取时间的函数,分别是 time()localtime()time() 函数返回 unix 时间戳 - 即从 1970 年 1 月 1 日 0:00 开始所经过的秒数,而 localtime() 函数则是将这个秒数转化为当地的具体时间(年月日时分秒)。 这里时间转化要用到一个 struct tm* 的结构体,结构如下:

struct tm {
    int tm_sec;   /* 秒 – 取值区间为[0,59] */
    int tm_min;   /* 分 - 取值区间为[0,59] */
    int tm_hour;  /* 时 - 取值区间为[0,23] */
    int tm_mday;  /* 一个月中的日期 - 取值区间为[1,31] */
    int tm_mon;   /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
    int tm_year;  /* 年份,其值等于实际年份减去1900 */
    int tm_wday;  /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一 */
    int tm_yday;  /* 从每年1月1日开始的天数– 取值区间[0,365],其中0代表1月1日 */
    int tm_isdst; /* 夏令时标识符,夏令时tm_isdst为正;不实行夏令时tm_isdst为0 */
};

示例代码:

#include <stdio.h>
#include <time.h>
int getTime()
{
    time_t t;           // 保存unix时间戳的变量 ,长整型
    struct tm* lt;      // 保存当地具体时间的变量
    int p;
    time(&t);           // 等价于 t = time(NULL); 获取时间戳
    lt = localtime(&t); // 转化为当地时间
    p = lt->tm_sec;     // 将秒数赋值给p
    return p;
}

应该就是这样啦~