日付を表示する

VC2005(WIN32API)で今日の日付を出力するプログラム。

#include "stdafx.h"
#include <stdio.h>
#include <time.h>

int _tmain(int argc, _TCHAR* argv[])
{
	__int64 ltime;
	struct tm local;

	_time64( &ltime );
	ltime += (9 * 60 * 60);
	_gmtime64_s(&local,&ltime);

	char str[30];
	sprintf(str,"001_%04d%02d%02d_%02d%02d~%02d",local.tm_year+1900
		,local.tm_mon+1
		,local.tm_mday
		,local.tm_hour
		,local.tm_min
		,local.tm_sec
		);

	printf("%s\n",str);


	return 0;
}

注意点はtm_yearは1900年からの経過年が返ってくるので+1900することと、tm_monは0スタートなので+1すること、日付は、1年365日中の日付が欲しい場合はtm_yday、月の日付が欲しいときはtm_mdayを使う。
こういうデータ処理ってほとんどやったことがないから、詳しくないんだよな。
それから、printfで"2"を"02"と表示したい場合は、%02dにする(久々すぎてすっかり忘れてた)