
我们在写C语言程序的时候,有的时候会用到读取本机的时间和日期,怎么做呢?其实很简单的,下面简单说一下:
C语言中读取系统时间的函数为time(),其函数原型为:#include <timeh>time_t time( time_t ) ;
time_t就是long,函数返回从1970年1月1日(MFC是1899年12月31日)0时0分0秒,到现在的的秒数。
可以调用ctime()函数进行时间转换输出:char ctime(const time_t timer);
将日历时间转换成本地时间,按年月日格式,进行输出,如:Wed Sep 23 08:43:03 2015C语言还提供了将秒数转换成相应的时间结构的函数:
struct tm gmtime(const time_t timer); //将日历时间转化为世界标准时间(即格林尼治时间)
struct tm localtime(const time_t timer); //将日历时间转为本地时间将通过time()函数返回的值,转成时间结构structtm :
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日,1代表1月2日,以此类推 /
int tm_isdst; / 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。/};
编程者可以根据程序功能的情况,灵活的进行日期的读取与输出了。
下面给出一段简单的代码:
#include<timeh>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/
}
一、手工录入
直接按住Alt+ ↓ 即可快速生成
: >
^!d:: ;Ctrl+alt+d
FormatTime, now_date, %A_Now%, yyyy/MM/dd ;格式化当前时间
Send, % now_date ;发送
Return
日期格式 (区分大小写)
d 不含前导零的天数 (1 - 31)
dd 含前导零的天数 (01 – 31)
ddd 在当前的用户语言里星期几的简称 (例如 Mon)
dddd 在当前的用户语言里星期几的全称 (例如 Monday)
M 不含前导零的月份 (1 – 12)
MM 含前导零的月份 (01 – 12)
MMM 在当前的用户语言里月份的简称 (例如 Jan)
MMMM 在当前的用户语言里月份的全称 (例如 January)
y 不含世纪的年份, 不含前导零 (0 – 99)
yy 不含世纪的年份, 含前导零 (00 - 99)
yyyy 含世纪的年份 例如: 2005
gg 当前用户区域设置的时代/纪元字符串 (如果没有则为空)
时间格式 (区分大小写)
h 不含前导零的小时数; 十二小时制格式 (1 - 12)
hh 含前导零的小时数; 十二小时制格式 (01 - 12)
H 不含前导零的小时数; 二十四小时制格式 (0 - 23)
HH 含前导零的小时数; 二十四小时制格式 (00 - 23)
m 不含前导零的分钟数 (0 – 59)
mm 含前导零的分钟数 (00 – 59)
s 不含前导零的秒数 (0 – 59)
ss 含前导零的秒数 (00 – 59)
t 单字符时间标记, 例如 A 或 P (取决于区域设置)
tt 多字符时间标记, 例如 AM 或 PM (取决于区域设置)
function getFormatTime() {
var date = new Date();
var hournum = dategetHours();
var minnum = (dategetMinutes() < 10 '0' + dategetMinutes() : dategetMinutes());
var time = hournum + ':' + minnum;
return time;
}
var timenow = getFormatTime();
$('#aaa')html(timenow);
用了jq,你可以直接用原生的获取节点,一样的。
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<stdioh>
#include<timeh>
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;
}
应该就是这样啦~
以下是使用 HTML 和 JavaScript 制作一个带有天、时、分、秒的时间表的示例:
<!DOCTYPE html>
<html>
<head>
<title>时间表</title>
<script>
// 获取当前日期和时间
function getCurrentTime() {
var now = new Date();
var day = nowgetDate();
var month = nowgetMonth() + 1;
var year = nowgetFullYear();
var hours = nowgetHours();
var minutes = nowgetMinutes();
var seconds = nowgetSeconds();
// 将单个数字的小时、分钟和秒前面添加零
hours = padZero(hours);
minutes = padZero(minutes);
seconds = padZero(seconds);
// 更新时间表的文本内容
documentgetElementById("day")textContent = day;
documentgetElementById("month")textContent = month;
documentgetElementById("year")textContent = year;
documentgetElementById("hours")textContent = hours;
documentgetElementById("minutes")textContent = minutes;
documentgetElementById("seconds")textContent = seconds;
}
// 在数字前面添加零,如果数字小于10
function padZero(num) {
return (num < 10 "0" : "") + num;
}
// 每秒钟更新一次时间
setInterval(getCurrentTime, 1000);
</script>
</head>
<body onload="getCurrentTime()">
<h1>时间表</h1>
<p>日期: <span id="day"></span>/<span id="month"></span>/<span id="year"></span></p>
<p>时间: <span id="hours"></span>:<span id="minutes"></span>:<span id="seconds"></span></p>
</body>
</html>
这段代码创建了一个简单的 HTML 页面,其中包含了一个时间表,显示了当前的日期和时间。JavaScript 部分使用了 Date 对象来获取当前的日期和时间,并通过将其内容更新到页面上的相应元素中来实现动态更新。setInterval 函数用于每秒钟调用一次 getCurrentTime 函数,以保持时间的实时更新。
请注意,这里使用了 getElementById 函数来获取页面上的元素,并通过 textContent 属性来设置元素的文本内容。这只是一个简单的示例,实际上在实际项目中,您可能需要更复杂的逻辑来处理日期和时间的格式化、时区的考虑等。
function nowTime(ev,type){
/
ev:显示时间的元素
type:时间显示模式若传入12则为12小时制,不传入则为24小时制
/
//年月日时分秒
var Y,M,D,W,H,I,S;
//月日时分秒为单位时前面补零
function fillZero(v){
if(v<10){v=0+v;}
return v;
}
(function(){
var d=new Date();
var Week=[星期天,星期一,星期二,星期三,星期四,星期五,星期六];
Y=dgetFullYear();
M=fillZero(dgetMonth()+1);
D=fillZero(dgetDate());
W=Week[dgetDay()];
H=fillZero(dgetHours());
I=fillZero(dgetMinutes());
S=fillZero(dgetSeconds());
//12小时制显示模式
if(type && type==12){
//若要显示更多时间类型诸如中午凌晨可在下面添加判断
if(H<=12){
H=上午 +H;
}else if(H>12 && H<24){
H-=12;
H=下午 +fillZero(H);
}else if(H==24){
H=下午 00;
}
}
evinnerHTML=Y+年+M+月+D+日 + +W+ +H+:+I+:+S;
//每秒更新时间
setTimeout(argumentscallee,1000);
})();
}
以上就是关于看过来,看过来 C语言获取系统时间的几种方式全部的内容,包括:看过来,看过来 C语言获取系统时间的几种方式、08单元格下拉菜单-数据验证的进阶使用、[autohotkey]脚本如何获取系统的当前时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)