dポイントプレゼントキャンペーン実施中!

数字から年月に変換して、出力したいです。
例えば、Y=2006、M=2の場合、
英語の場合:「Feb 2006」
日本語の場合:「2006年2月」
として、出力する。
実際、YとMの入力はいろいろです。
Yは年の数字、Mは月の数字です。
C言語プルグラムのサンプルが欲しいです。
教えてください!
お願いします。

A 回答 (5件)

#2です。



E-Monthは名前が間違っていました。
E_Month(アンダーバー)にしてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/02/24 12:21

strftimeについて調べてみてください。


特に、ロケール依存の変換を行う%Xとか%xのあたりを。
処理系には依存しますが、多分、ドイツ語でもスペイン語でも中国語でもベトナム語でも対応出来ると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/02/24 12:22

こういうやり方もあります。



const char *english_manth = {
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec" };

if( 英語 ){
 printf( "%s %d\n", english_manth[M-1], Y );
else if( 日本語 ){
 printf( "%d年%d月\n", M, Y );
}
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/02/24 12:21

#define Japanese 1


#define English 2

char *E-Month[12] = {"Jan" , "Feb" , … };

int Lang;
int y , m;

y = atoi(Y);
m = atoi(M);
switch (Lang)
{
case Japanese:
printf("%d年%d月" , y , m);
break;
case English:
Printf("%s %d" , E-Month[m - 1] , y);
break;
default:
break;
}

こんな感じでいかがでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/02/24 12:20

int nLang; // 1:英語 2:日本語


char YM[LENGTH];
if(nLang == 1) {
switch(M) {
case 1:
sprintf(YM,"Jan %d",Y);
break;
(略)
}
} else if(nLang == 2) {
sprintf(YM,"%d年%d月",Y,M);
}

…かな?
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/02/24 12:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!