<C语言>“获取时间”函数的定义与封装

C语言获取本地时间,有时候需要不同的格式来表示,作者自己编写了一个头文件,封装了日期和时间,便于调用,在这里分享给大家:

/*  The function for geting date. */
/*
author:wsg
date:2017/09/08
version:1 
*/

#ifndef _GETTM_H_
#define _GETTM_H_

/* head file */
#include <time.h>

/* macro */
#define SIZE 30

/* Declaration of function */
/* include:
struct tm *get_loc_time(void);

int get_loc_year(void);
int get_loc_mon(void);
int get_loc_mday(void);
char *get_loc_wday(void);
int get_loc_hour(void);
int get_loc_min(void);
int get_loc_sec(void); 
void get_str_time(char buf[]);
*end here
*/

/* Function encapsulation */
struct tm *get_loc_time(void)
{
  time_t t;
  time(&t);
  
  struct tm *loc_time;
  loc_time = localtime(&t);
  
  return loc_time;
}

/* get date:include year_mon_mday and wday and hour_min_sec */
//get date year
int get_loc_year(void)
{
	struct tm *loc_time = get_loc_time();
	return ( (loc_time->tm_year)+1900 );
}

//get date mon
int get_loc_mon(void)
{
	struct tm *loc_time = get_loc_time();
	return ( (loc_time->tm_mon)+1 );
}

//get date mday
int get_loc_mday(void)
{
	struct tm *loc_time = get_loc_time();
	return ( (loc_time->tm_mday) );
}

//get date wday
char *get_loc_wday(void)
{
	char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
	struct tm *loc_time = get_loc_time();
	return ( wday[(loc_time->tm_wday)] );
}

// get date hour
int get_loc_hour(void)
{
	struct tm *loc_time = get_loc_time();
	return ( (loc_time->tm_hour) );
}

// get date min
int get_loc_min(void)
{
	struct tm *loc_time = get_loc_time();
	return ( (loc_time->tm_min) );
}

// get date sec
int get_loc_sec(void)
{
	struct tm *loc_time = get_loc_time();
	return ( (loc_time->tm_sec) );
}

//change date to formate string
void get_str_time(char buf[])
{
	int year, mon, mday, hour, min, sec;;
	char *wday = NULL;
	
	year = get_loc_year();
	mon = get_loc_mon();
	mday = get_loc_mday();
	
	wday = get_loc_wday();
	
	hour = get_loc_hour();
	min = get_loc_min();
	sec = get_loc_sec();
	
	/* change any format to string */
	snprintf(buf, SIZE, "%d/%02d/%02d %s %02d:%02d:%02d\n", year, mon, mday, wday, hour, min, sec);
}

#endif


test:

#include <stdio.h>
#include "gettm.h"

int main(void)
{
	int year, mon, mday;
	char *wday = NULL;
	int hour, min, sec;
	
	year = get_loc_year();
	mon = get_loc_mon();
	mday = get_loc_mday();
	
	wday = get_loc_wday();
	
	hour = get_loc_hour();
	min = get_loc_min();
	sec = get_loc_sec(); 
	
	printf("%d/%02d/%02d ", year, mon, mday);
	printf("%s ", wday);
	printf("%02d:%02d:%02d\n", hour, min, sec); 
	
	char buf[SIZE] = {};
	get_str_time(buf);
	printf("%s", buf);
	
	return 0;
}

You can see the result:

2017/09/08 Fri 11:02:34
2017/09/08 Fri 11:02:34


点此:C/C++关于日期和时间的函数大全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值