c语言-生成随机数、获取当前年月日时分秒

2024-03-27 13:28

本文主要是介绍c语言-生成随机数、获取当前年月日时分秒,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

rand()简介

  • 头文件 <stdlib.h>

  • 标准的C库中函数rand()可以生成 0~RAND_MAX 之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。

  • rand()函数没有输入参数,直接通过表达式rand()来引用;例如可以用下面的语句来打印两个随机数:

printf("Random numbers are: %i %i\n",rand(),rand());
  • rand()产生伪随机数,当随机种子(伪随机序列的初始数值)不变,每次执行rand() 返回相同的值。

  • srand() 伪随机数生成器 让随机种子随着当前时间而变化,使rand()产生不同的随机数序列。

srand()简介

  • rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。
  • srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。

c语言的time(0)和time(NULL)区别

  • time(0)time(NULL) 都用于获取当前时刻的unix时间戳

  • time(0)接收一个整数类型的参数;time(NULL)接受一个空指针,两种调用方式在功能上等价,一般time(null)使用较广。

时间戳

  • Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

    • 前缀Unix是因为 Unix 操作系统最早使用了这种时间表示方式并将其命名为 Unix 时间戳。

    • UTC 和 GMT 都是国际标准时间的代表

    • UTC(Coordinated Universal Time):UTC 是一种标准时间,是由国际原子时所提供的时间测量,它是以原子钟为基础,与地球自转无关。UTC 被认为是世界时间的参考时标,被广泛用于全球各地的航空、航海、互联网和科学研究等领域。UTC 通常是通过全球性的时间传输服务来保持精确性。

    • GMT(Greenwich Mean Time):GMT 是相对于格林尼治天文台的时间。原始的 GMT 是以格林尼治天文台的太阳穿越格林尼治子午线的时间作为午夜,被用作参考时间。但随着时间的推移,GMT 已经逐渐被 UTC 取代,尤其在科学和技术领域。在通常情况下,UTC 和 GMT 是相等的。

获取当前年月日-时分秒

#include <stdio.h>
#include <time.h>// 结构体用于存储年月日时分秒
struct DateTime {int year;int month;int day;int hour;int minute;int second;
};// 获取当前时刻的年月日时分秒
struct DateTime getCurrentDateTime() {// 获取当前时间戳time_t now;    time(&now);//将time()返回的时间戳存入new指向的地址// 将时间戳转换为结构体表示的时间struct tm *local = localtime(&now);// 将时间转换为自定义的结构体struct DateTime currentDateTime;currentDateTime.year = local->tm_year + 1900;   // tm_year表示自 1900 年至今的年数currentDateTime.month = local->tm_mon + 1;      // tm_mon表示月份,范围为 0-11currentDateTime.day = local->tm_mday;          // tm_mday表示月中的天数,范围为 1-31currentDateTime.hour = local->tm_hour;         // tm_hour表示小时,范围为 0-23currentDateTime.minute = local->tm_min;        // tm_min表示分钟,范围为 0-59currentDateTime.second = local->tm_sec;        // tm_sec表示秒数,范围为 0-59return currentDateTime;
}int main() {// 获取当前时刻struct DateTime current = getCurrentDateTime();// 输出当前时刻printf("当前时刻:%d年%d月%d日 %02d:%02d:%02d\n", current.year, current.month, current.day, current.hour, current.minute, current.second);return 0;
}

这篇关于c语言-生成随机数、获取当前年月日时分秒的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852247

相关文章

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文