小甲鱼 发表于 2017-6-24 23:05:51

localtime -- 获取当前的本地时间和日期

localtime -- 获取当前的本地时间和日期

函数摘要:

localtime 函数用于获取当前的本地时间和日期。

其实 localtime 函数是将一个 time_t 类型的值转换成具体的本地时间和日期,所以需要先使用 time 函数来返回表示当前时间的 time_t。


小甲鱼科普

UTC:整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC,Universal Time Coordinated)。UTC 与格林尼治平均时(GMT, Greenwich Mean Time)一样,都与英国伦敦的本地时相同。

本地时间:北京时间所采取的时区是东八区,即比 UTC 快 8 小时,所以如果 UTC 时间是 13:00,则北京时间应该是 21:00。
函数原型:

#include <time.h>
...
struct tm *gmtime(const time_t *timep);

参数解析:


参数 含义
timep1. 指向 time_t 类型的指针

2. 请使用 time 函数获取该指针需要指向的值


返回值:

返回值是一个指向 tm 结构体的指针。

tm 结构体包含了当地时间和日期:

struct tm
{
         int tm_sec;   /* 秒,范围为 0~59,60 的话表示闰秒 */
         int tm_min;   /* 分,范围是 0~59 */
         int tm_hour;    /* 时,范围是 0~23 */
         int tm_mday;    /* 一个月中的第几天,范围是 1~31 */
         int tm_mon;   /* 一年中的第几个月,范围是 0~11 */
         int tm_year;    /* 自 1900 年往后的第几年 */
         int tm_wday;    /* 星期几,自星期天开始计算,范围是 0~6 */
         int tm_yday;    /* 一年中的第几天,范围是 0~365 */
         int tm_isdst;   /* 指定日光节约时间是否生效,正数表示生效,0 表示不生效,负数表示该信息不可用 */
};


演示:

#include <stdio.h>
#include <time.h>

#define SUN 0
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6

int main(void)
{
      struct tm *p;
      time_t t;

      time(&t);
      p = localtime(&t);

      switch(p->tm_wday)
      {
                case MON:
                case TUE:
                case WED:
                case THU:
                case FRI:
                        printf("干活!T_T\n");
                        break;
                case SAT:
                case SUN:
                        printf("放假!^_^\n");
                        break;
                default:
                        printf("Error!\n");
      }

      return 0;
}



啊涂涂 发表于 2018-12-5 17:26:56

打破零回复

蜗牛冲上天 发表于 2019-3-9 14:29:00

其实 我一点都咩看懂

江南盛景 发表于 2019-3-25 11:14:09

有没有不能用的 签个到

于晏 发表于 2019-12-4 13:00:07

17,18行是咩意思

姬世鹏 发表于 2020-1-6 15:31:10

giving up

嗯哼汪小洋 发表于 2020-3-16 22:37:46

干活???????????????????

呆呆兽鸭 发表于 2020-3-24 18:59:22

试试能不能用到17~18的课后作业中

科科都不挂 发表于 2020-8-16 15:10:45

于晏 发表于 2019-12-4 13:00
17,18行是咩意思

17行调用time函数,18行调用localtime函数

金装小学生 发表于 2020-8-20 16:32:04

嗯哼汪小洋 发表于 2020-3-16 22:37
干活???????????????????

干活是因为你运行日期是星期一

why80180 发表于 2020-11-16 17:32:35

1024打卡打卡

milolin 发表于 2021-1-22 00:05:32

打卡

Mr.LuCifer 发表于 2021-2-23 10:18:02

nice!

不是风的名字 发表于 2021-4-7 15:01:43

江南盛景 发表于 2019-3-25 11:14
有没有不能用的 签个到

好奇怪 我复制代码 都是显示的干活

电控渣 发表于 2022-5-13 10:43:21

来了

额外减小 发表于 2022-7-20 22:21:50

小甲鱼,22-26句连着用case,计算机不会理解为是当case MON,case TUE,case WED,case THU 时无指令吗{:10_256:}
页: [1]
查看完整版本: localtime -- 获取当前的本地时间和日期