• ベストアンサー

教えて!数字から年月に変換したいです

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

質問者が選んだベストアンサー

  • ベストアンサー
  • m_mik
  • ベストアンサー率26% (31/117)
回答No.4

#2です。 E-Monthは名前が間違っていました。 E_Month(アンダーバー)にしてください。

2003saki
質問者

お礼

ありがとうございます。

その他の回答 (4)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.5

strftimeについて調べてみてください。 特に、ロケール依存の変換を行う%Xとか%xのあたりを。 処理系には依存しますが、多分、ドイツ語でもスペイン語でも中国語でもベトナム語でも対応出来ると思います。

2003saki
質問者

お礼

ありがとうございます。

回答No.3

こういうやり方もあります。 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 ); }

2003saki
質問者

お礼

ありがとうございます。

  • m_mik
  • ベストアンサー率26% (31/117)
回答No.2

#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; } こんな感じでいかがでしょうか?

2003saki
質問者

お礼

ありがとうございます。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

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); } …かな?

2003saki
質問者

お礼

ありがとうございます。