如何用C语言获取当前系统时间?

如何用C语言获取当前系统时间?,第1张

需要利用C语言时间函数time和localtime,具体说明如下:

一、函数接口介绍:

1、time函数。

形式为time_t time (time_t *__timer)

其中time_t为time.h定义的结构体,一般为长整型。

这个函数会获取当前时间,并返回。 如果参数__timer非空,会存储相同值到__timer指向的内存中。

time函数返回的为unix时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

由于是秒作为单位的,所以这并不是习惯上的时间,要转为习惯上的年月日时间形式就需要另外一个函数了。

2、localtime函数。

形式为struct tm *localtime (const time_t *__timer);

其中tm为一个结构体,包含了年月日时分秒等信息。

这种结构是适合用来输出的。

二、参考代码:

#include <stdio.h>

#include <time.h>

int main ()

{

    time_t t

    struct tm * lt

    time (&t)//获取Unix时间戳。

    lt = localtime (&t)//转为时间结构。

    printf ( "%d/%d/%d %d:%d:%d\n",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec)//输出结果

    return 0

}

注意事项:

struct tm中的tm_year 值为实际年减去1900, 所以输出的时候要是lt->tm_year+1900。

#include<time.h>

int main()

{

time_t timep

struct tm *p

time (&timep)

p=gmtime(&timep)

printf("%d\n",p->tm_sec)/*获取当前秒*/

printf("%d\n",p->tm_min)/*获取当前分*/

printf("%d\n",8+p->tm_hour)/*获取当前时,这里获取西方的时间,刚好相差八个小时*/

printf("%d\n",p->tm_mday)/*获取当前月份日数,范围是1-31*/

printf("%d\n",1+p->tm_mon)/*获取当前月份,范围是0-11,所以要加1*/

printf("%d\n",1900+p->tm_year)/*获取当前年份,从1900开始,所以要加1900*/

printf("%d\n",p->tm_yday)/*从今年1月1日算起至今的天数,范围为0-365*/

}

拓展资料:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料:C语言_百度百科

public class WhichWeek {

public static void main(String[] args) {

//基数日期,例如 2006年9月3号

Calendar calBase = Calendar.getInstance()

calBase.set(2006, 9 - 1, 3)

//当前日期,这里取 JVM 运行机器的日期,

// 如果要取数据库日期,可以使用 Oracle 的 SYSDATE 取得。

// 然后用 Calendar 类的 setTimeInMillis() 方法设置日期

Calendar calCurrent = Calendar.getInstance()

//取基数日期和当前日期各为各自年中的第几周

int weekBase = calBase.get(Calendar.WEEK_OF_YEAR)

int weekCurrent = calCurrent.get(Calendar.WEEK_OF_YEAR)

int weekCount = weekCurrent - weekBase

System.out.println("本周是自" +

calBase.get(Calendar.YEAR) + "年" +

(calBase.get(Calendar.MONTH) + 1) + "月" +

calBase.get(Calendar.DAY_OF_MONTH) + "日" +

"以来的第" + weekCount + "周")

}

}

注释很详细,Calendar类不会用可以查 API 手册,自己根据需要加一下是否同一年等判断。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11802024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存