- ベストアンサー
教えて!数字から年月に変換したいです
数字から年月に変換して、出力したいです。 例えば、Y=2006、M=2の場合、 英語の場合:「Feb 2006」 日本語の場合:「2006年2月」 として、出力する。 実際、YとMの入力はいろいろです。 Yは年の数字、Mは月の数字です。 C言語プルグラムのサンプルが欲しいです。 教えてください! お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 E-Monthは名前が間違っていました。 E_Month(アンダーバー)にしてください。
その他の回答 (4)
- jacta
- ベストアンサー率26% (845/3158)
strftimeについて調べてみてください。 特に、ロケール依存の変換を行う%Xとか%xのあたりを。 処理系には依存しますが、多分、ドイツ語でもスペイン語でも中国語でもベトナム語でも対応出来ると思います。
お礼
ありがとうございます。
- mocomoco_0001
- ベストアンサー率29% (26/87)
こういうやり方もあります。 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 ); }
お礼
ありがとうございます。
- m_mik
- ベストアンサー率26% (31/117)
#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; } こんな感じでいかがでしょうか?
お礼
ありがとうございます。
- Trick--o--
- ベストアンサー率20% (413/2034)
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); } …かな?
お礼
ありがとうございます。
お礼
ありがとうございます。