C语言的时间函数
下面是C语言的获取本地时间和构造时间进行格式化时间显示输出的相关函数:
This page is part of release 3.35 of the Linux man-pages project.
#include <time.h>
char *asctime(const struct tm *tm);
char *asctime_r(const struct tm *tm, char *buf); char *ctime(const time_t *timep);
char *ctime_r(const time_t *timep, char *buf); struct tm *gmtime(const time_t *timep);
struct tm *gmtime_r(const time_t *timep, struct tm *result); struct tm *localtime(const time_t *timep);
struct tm *localtime_r(const time_t *timep, struct tm *result); time_t mktime(struct tm *tm);
Broken-down time is stored in the structure tm which is defined in
<time.h> as follows: struct tm {
int tm_sec; /* seconds */
int tm_min; /* minutes */
int tm_hour; /* hours */
int tm_mday; /* day of the month */
int tm_mon; /* month */
int tm_year; /* year */
int tm_wday; /* day of the week */
int tm_yday; /* day in the year */
int tm_isdst; /* daylight saving time */
};
The members of the tm structure are: tm_sec The number of seconds after the minute, normally in the range
0 to 59, but can be up to 60 to allow for leap seconds. tm_min The number of minutes after the hour, in the range 0 to 59. tm_hour The number of hours past midnight, in the range 0 to 23. tm_mday The day of the month, in the range 1 to 31. tm_mon The number of months since January, in the range 0 to 11. tm_year The number of years since 1900. tm_wday The number of days since Sunday, in the range 0 to 6. tm_yday The number of days since January 1, in the range 0 to 365. tm_isdst A flag that indicates whether daylight saving time is in
effect at the time described. The value is positive if day‐
light saving time is in effect, zero if it is not, and nega‐
tive if the information is not available.
下面是一个程序,输入某个日期(年份不要太久远,否则超出time_t的范围),输出哪个日期是星期几,还有下个星期一是哪天:
#include<iostream>
#include<ctime>
#include<string.h>
using namespace std;
struct Date{
int day;
int month;
int year;
};
Date& add(Date& date,int day,int month,int year){
//这个函数什么也没考虑,仅仅为了测试
date.day+=day;
date.month+=month;
date.year+=year;
return date;
}
int tellWeekday(int mon,int day,int year){
struct tm ct;
//bzero(&ct,sizeof(ct));
memset(&ct,,sizeof(ct));//take care of pointer
ct.tm_year=year-;//maybe ct->tm_year is read only if ct is pointer
ct.tm_mon=mon-;
ct.tm_mday=day;
//ct.tm_sec=ct->tm_min=ct->tm_hour=ct->tm_wday=ct->tm_yday=ct->tm_isdst=0;
time_t ctt=mktime(&ct);
if(ctt==-) return -;
struct tm* ans=localtime(&ctt);
cout<<"The day of the week is(0~6): "<<ans->tm_wday<<endl;
}
int nextMondayDate(int mon,int day,int year){
struct tm ct;
int delta;
//bzero(&ct,sizeof(ct));
memset(&ct,,sizeof(ct));
ct.tm_year=year-;
ct.tm_mon=mon-;
ct.tm_mday=day;
time_t ctt=mktime(&ct);
if(ctt==-) return -;
struct tm* tm2=localtime(&ctt);
if(tm2->tm_wday==) delta=;
else delta=-tm2->tm_wday;
ctt+=delta**;
tm2=localtime(&ctt);
cout<<tm2->tm_mon+<<' '<<tm2->tm_mday<<"th "<<tm2->tm_year+<<endl;
}
int main(){
Date today,otherDay;
int mm,dd,yy;
time_t rawTime,inTime;
struct tm* timeInfo;
time(&rawTime);//get secs from 1970.1.1,save to rawTime
timeInfo=localtime(&rawTime);
cout<<"Now the time is: "<<asctime(timeInfo);//has already '\n'
today.year=timeInfo->tm_year+;
today.month=timeInfo->tm_mon+;//starts from 0
today.day=timeInfo->tm_mday;
otherDay=add(today,,,);
cout<<"After 1 year 1 month and 1 day,it will be:"<<endl
<<otherDay.month<<' '<<otherDay.day<<"th,"<<otherDay.year
<<endl;
cout<<"Input the date(mm dd yy):";
cin>>mm>>dd>>yy;
tellWeekday(mm,dd,yy);
cout<<"Input date(mm dd yy),return the next Monday:";
cin>>mm>>dd>>yy;
nextMondayDate(mm,dd,yy);
system("pause");
return ;
}
C语言的时间函数的更多相关文章
- [转帖]C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义
C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义 https://blog.csdn.net/willyang519/article/d ...
- 常用C语言time时间函数
常见的时间函数有time( ).ctime( ).gmtime( ).localtime( ).mktime( ).asctime( ).difftime( ).gettimeofday( ).set ...
- c语言随机函数&&时间函数
c语言中的随机函数为rand(),但是rand生成的值得大小主要相对一个变量才产生的一定有含义的数,这个相对的变量我们可以再srand()函数中进行设置,srand函数是void类型,内部含一个无符号 ...
- R语言日期时间函数
Sys.Date( ) returns today's date. date() returns the current date and time.# print today's datetoday ...
- C 语言 时间函数使用技巧(汇总)
time.h 头文件 是 C 语言中 有关 时间的函数所储存的头文件 #include <time.h> 在介绍时间函数用法之前,我们首先要了解在 time.h 头文件中已经声明了的一个结 ...
- C语言 常用的时间函数
//时间函数的使用 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include& ...
- Loadrunner时间函数、用时间生成订单编号例子
Loadrunner中取时间函数.用时间函数生成订单编号例子: <如要转载,请注明网络来源及作者:Cheers_Lee> 问题的提出: (1)有时候在Loadrunner中用C语言设计脚本 ...
- Oracle日期时间函数大全
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...
- Linux时间函数之gettimeofday()函数之使用方法
1.简介: 在C语言中可以使用函数gettimeofday()函数来得到时间.它的精度可以达到微妙 2.函数原型: #include<sys/time.h> int gettimeofda ...
随机推荐
- git 找回丢失的commit
From : http://dmouse.iteye.com/blog/1797267 git 的错误操作,导致丢失了重要的commit,真是痛不欲生: 最后通过git神器终于找回了丢失的commit ...
- codevs 1531 山峰
codevs 1531 山峰 题目描述 Description Rocky山脉有n个山峰,一字排开,从西向东依次编号为1, 2, 3, --, n.每个山峰的高度都是不一样的.编号为i的山峰高度为hi ...
- 详细学习ORACLE JOBS
一点一点学习jobs的各个方面比较长,比较烦,但是应该看完后会对jobs比较好的应用 一.学习准备 开始dbms_job学习前,先认识一个参数job_queue_processes a.job_que ...
- 如何在mac本上安装android sdk
众所周知的原因,google的很多网站在国内无法访问,苦逼了一堆天朝程序员,下是在mac本上折腾android 开发环境的过程: 一.先下载android sdk for mac 给二个靠谱的网址: ...
- HP DL60 Gen9 安装CentOS 6.5
由于Gen 9的VID中自带RETHAT 5.X-7.0的驱动, 所以不需要制作驱动盘. 一, 准备工作 1. 制作 CentOS安装盘 2. 配置阵列, 开机过了自检后按F10. 自己看着配... ...
- 使用 data-* 属性来嵌入自定义数据
1. HTML 实例 <ul> <li data-animal-type="bird">Owl</li> <li data-animal- ...
- 制作stick侧边栏导航效果
其实这种效果网上好多的插件,但是我想自己实现看看,其实把思路理清实现起来就非常简单了,让我们看看: 分析: 从图中我们可以看出:右边的top=100px,那么它应该在第一个框的top+height=1 ...
- Bootstrap系列 -- 44. 分页导航
带页码的分页导航,可能是最常见的一种分页导航,特别是在列表页内容超多的时候,会给用户提供分页的导航方式.平时很多同学喜欢用div>a和div>span结构来制作带页码的分页导航.不过,在B ...
- 重叠(Overlapping) NAT
当内部网络也使用公网注册地址(或者是外网合法地址)时,如果仍使用标准的静态或者动态NAT转换,则可能使得转换的内网地址与外网中合法地址冲突,使数据包又返回到了本地网络,这肯定是不行的.这时我们就要使用 ...
- 个人知识管理系统Version1.0开发记录(01)
架 构 描 述 01.数据层,数据源,有形资源入库,无形资源整理,对外搜索引擎,对内平台搜索,数据类型(文字.图片.声音.视频.组合),数据时空优化,数据安全方案(数据进站关卡,数据出战关卡),数据并 ...