掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
年齢 (ID:52988)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ってゆーか、学生相手っぽかったので、敢えて多少誤差の出る 「サンプル」を掲載したのですが、また突っ込まれるとアレなので・・・ 誤差無しで正確に年齢を得られるソースを再掲しときます。 // birthday YYYY/MM/DD → age int getAge(char *birth) { int i,fix,ret; int ymd[3]; char wbuf[16]; char *tkn; struct tm tmBthTime, *tmRsltTime, *tmJpnTime; time_t nowTime,bthTime,diffTime; strcpy(wbuf,(const char *)birth); i = fix = 0; tkn = strtok(wbuf,"/"); while (tkn != NULL){ ymd[i++] = atoi(tkn); tkn = strtok(NULL,"/"); } if(ymd[0] < 1970){ fix = 1970 - ymd[0]; ymd[0] = 1970; } time(&nowTime); tmJpnTime = localtime(&nowTime); tmJpnTime->tm_sec = 0; tmJpnTime->tm_min = 0; tmJpnTime->tm_hour = 0; nowTime = mktime(tmJpnTime); tmBthTime.tm_sec = 0; tmBthTime.tm_min = 0; tmBthTime.tm_hour = 0; tmBthTime.tm_mday = ymd[2]; tmBthTime.tm_mon = ymd[1] - 1; tmBthTime.tm_year = ymd[0] - 1900; tmBthTime.tm_isdst = 0; bthTime = mktime(&tmBthTime); diffTime = (time_t)difftime(nowTime,bthTime); tmRsltTime = gmtime(&diffTime); ret = tmRsltTime->tm_year - 70 + fix; return(ret); } // 使用例 void main(void) { int age; age = getAge("1954/01/14"); printf("Age = %d\n",age); }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.