//version.h
/*************************************************************
FileName : version.h
FileFunc : 定義頭文件
Version : V0.1
Author : Sunrier
Date : 2012-05-09
Descp : Linux下顯示項目創建的相關信息
*************************************************************/
#ifndef _VERSION_H
#define _VERSION_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef PROJECT
#define PROJECT "DispProjInfo"
#endif
#ifndef VERSION
#define VERSION "V0.1"
#endif
#ifndef UPDATE_DATE
#define UPDATE_DATE __DATE__
#endif
#ifndef UPDATE_TIME
#define UPDATE_TIME __TIME__
#endif
#ifndef LINE
#define LINE __LINE__
#endif
#ifndef FUNCTION
#define FUNCTION __FUNCTION__
#endif
#ifndef AUTHOR
#define AUTHOR "Sunrier"
#endif
#ifndef FILENAME
#define FILENAME __FILE__
#endif
void DisplayTodayTime( void );
#ifdef __cplusplus
}
#endif
#endif
//version.c
/*************************************************************
FileName : version.c
FileFunc : 定義測試功能文件
Version : V0.1
Author : Sunrier
Date : 2012-05-09
Descp : Linux下顯示項目創建的相關信息
*************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "version.h"
void DisplayTodayTime( void )
{
/*char *wday[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};*/
char *wday[]={"Sunday","Monday","Tuesday","Wendesday","Thursday","Friday","Saturday"};
time_t timep;
struct tm *p;
time(&timep);
p=localtime(&timep);
/*printf("當前日期時間:");*/
printf("Today Time:");
printf ("%04d-%02d-%02d ", (1900+p->tm_year),( 1+p->tm_mon), p->tm_mday);
printf("%s %02d:%02d:%02d\n", wday[p->tm_wday],p->tm_hour, p->tm_min, p->tm_sec);
}
OR
void DisplayTodayTime( void )
{
time_t timer;
struct tm *ptm;
char szBuffer[128];
//time獲取當前的系統時間,返回的結果是一個time_t類型,其實就是一個大整數
//其值表示從CUT(Coordinated Universal Time)時間1970年1月1日00:00:00(稱爲UNIX
//系統的Epoch時間)到當前時刻的秒數。然後調用localtime將time_t所表示的CUT時間轉換
//爲本地時間(我們是+8區,比CUT多8個小時)並轉成struct tm類型,該類型的各數據成員
//分別表示年月日時分秒。
timer = time(NULL);
//localtime把從1970-1-1零點零分到當前時間系統所偏移的秒數時間轉換爲日曆時間
ptm = localtime(&timer);
memset(szBuffer,0,sizeof(szBuffer));
strftime(szBuffer, sizeof(szBuffer), "%Y-%m-%d %H:%M:%S ", ptm);
printf("%s \n",szBuffer);
}
int main (int argc,char *argv[])
{
if(argc!=2)
{
printf("Usage:%s error!\n",argv[0]);
printf("WARNING:invalid option '%s' \n",argv[1]);
printf("Try 'Version -help' for more information \n");
exit (-1);
}
if( '-'==*argv[1])
{
if( 0==memcmp(argv[1],"-pro",sizeof(argv[1])) )
printf("PROJECT:%s\n",PROJECT);
else if( 0==memcmp(argv[1],"-ver",sizeof(argv[1])) )
printf("VERSION:%s\n",VERSION);
else if( 0==memcmp(argv[1],"-date",sizeof(argv[1])) )
printf("UPDATE_DATE:%s\n",UPDATE_DATE);
else if( 0==memcmp(argv[1],"-file",sizeof(argv[1])) )
printf("FILENAME:%s\n",FILENAME);
else if( 0==memcmp(argv[1],"-author",sizeof(argv[1])) )
printf("AUTHOR:%s\n",AUTHOR);
else if( 0==memcmp(argv[1],"-time",sizeof(argv[1])) )
DisplayTodayTime();
else if( 0==memcmp(argv[1],"-all",sizeof(argv[1])) )
printf("PROJECT:%s\nVERSION:%s\nUPDATE_DATE:%s\n",PROJECT,VERSION,UPDATE_DATE);
else if( 0==memcmp(argv[1],"-help",sizeof(argv[1])) )
{
printf("Usage:Manager[OPTION] \n");
printf(" -pro -- display PROJECT \n");
printf(" -ver -- display VERSION \n");
printf(" -date -- display UPDATE_DATE \n");
printf(" -file -- display FILENAME \n");
printf(" -author -- display AUTHOR \n");
printf(" -time -- display Today Time \n");
printf(" -all -- display all information \n");
printf(" -help -- display help \n");
}
else
{
printf("WARNING:invalid option '%s' \n",argv[1]);
printf("Try 'Version -help' for more information \n");
}
exit(0);
}
printf("WARNING:invalid option '%s' \n",argv[1]);
printf("Try 'Version -help' for more information \n");
return 0;
}
XXX.c
/*************************************************************
FileName : xxx.c
FileFunc : 獲取本地時間
Version : V0.1
Author : Sunrier
Date : 2012-05-09
Descp : Linux下獲取本地時間 格式YYYYMMDDHHMMSS(年月日時分秒)
*************************************************************/
#include <stdio.h>
#include <time.h>
void GetLocalTime( char *pOutTime)
{
time_t t;
struct tm tm1;
t = time(NULL);
memcpy(&tm1,localtime(&t),sizeof(struct tm));
sprintf(pOutTime,"%04d%02d%02d%02d%02d%02d",tm1.tm_year+1900,tm1.tm_mon+1,tm1.tm_mday,tm1.tm_hour,tm1.tm_min,tm1.tm_sec);
//YYYYMMDDHHMMSS(年月日時分秒)
}
編譯鏈接文件:
[Sunrier@localhost Version]$ gcc -o Version version.c
[Sunrier@localhost Version]$
測試結果:
[Sunrier@localhost Version]$ ./Version -file
FILENAME:version.c
[Sunrier@localhost Version]$
[Sunrier@localhost Version]$ ./Version -time
Today Time:2012-05-09 Wendesday 13:37:04
[Sunrier@localhost Version]$