kogaken1 2013-03-20 13:08:05

[C] 時限爆弾 このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

メールヘッダーのDate:の解析部分。 検証環境が無かったため4月になるまで誰も気づきませんでした…

#include <time.h>
#define SUCCESS ((int)0);

#define MONTH_MAX 11
#define MONTH_LENGTH 3
static char MONTH[] = { "Jan", "Feb", "Mar", "Apl", "May", "Jun", "Jul", "Aug",
		"Sep", "Oct", "Nov" };

/* メールのDate:ヘッダーから送信時刻を取り出す */
int get_mail_date(char* dateheader, struct tm *timevalue)
{
	int i = MONTH_MAX;
	char* month;
	/* 略:ヘッダ切り出し  monthはヘッダ文字列部分の先頭を指す */
	/* 略:曜日解析 */
	/* 略:日付解析 */

	/* 月解析 */
	for (i = 0; i < MONTH_MAX; i++)
	{
		if (0 == strncmp(month, MONTH[i], MONTH_LENGTH))
		{
			timevalue->tm_mon = i;
			break;
		}
	}

	/* 略:年解析 */
	/* 略:時解析 */
	/* 略:分解析 */
	/* 略:秒解析 */
	/* 略:TIMEZONE解析 */
	return SUCCESS ;
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(12)

#1 MasaniwaSdp 2013-03-21 03:06:51  

なんか新しいパターンやなw

#2 sanny_punch 2013-03-21 12:16:02  

12行目をMONTH_MAXで初期化するのは意味があるんですか

#4 jkr_2255 2013-03-23 04:09:08  

あれ? MONTHの型がおかしくない?

#5 kogaken1 2013-03-23 15:29:14  

あれ? MONTHの型がおかしくない?

ああしまった。 char* MONTH[] ですね。ごめんなさい。

#6 kogaken1 2013-03-23 15:29:56  

12行目をMONTH_MAXで初期化するのは意味があるんですか

どれにも引っかからなかったら12月扱いです。

#7 jptakutojp 2013-04-08 05:57:21  

6 にマーキングしたいわ。

#9 kogaken1 2013-04-14 10:47:06  

6 にマーキングしたいわ。

正解です。実際は別の月だったんですが。

#10 HarpoonArrow 2013-05-20 13:02:04  

やっとわかった。自分もワンライナーとかでたまにやらかす。

#11 kyosha1199 2013-08-18 06:10:52  

ああ、AplじゃなくてAprってことかぁw

#12 iruka3 2013-09-02 15:07:05  

12月が無いやん。 Aprの綴り間違ってることよりも、落ちたら12月判定にしてる設計のほうがウンコだぜー。

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »

[C] すげーちゃんと動く!

このエントリーをはてなブックマークに追加

結合試験2日前に脱退したうんkプログラマ...

return 0;

鑑賞する »

[Java] is禁止令

このエントリーをはてなブックマークに追加

ウンコードの趣旨とは違い、レビューで指摘...

// Mod yamada Start

// 一般的に考えて真偽値を返すメ...

鑑賞する »