• ベストアンサー

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

数字から年月に変換して、出力したいです。 例えば、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
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 年月の読みかた

    「20年の年月が流れた。」という文章の場合、年月は「としつき」か「ねんげつ」か、どちらで読むのが正しい読み方でしょうか。 手元の辞書(岩波国語辞典より引用)によると、 としつき……1.年と月。2.とき。歳月。ねんげつ。3.長い歳月。4.今まで長い間。年来。 ねんげつ……としつき。長い間。 とありました。 どちらで読むのがこの場合正しいでしょうか。

  • ExcelVBA 年月を年度に変換したい

    201303という年月を表す文字列を年度に変換したいのですが、関数がよく分かりません。 2013年3月ならば2012年度にしたいのです。 Private Sub UserForm_Initialize() Dim i As Integer Dim k As Integer 'コンボボックスから年と月を選択できるようにする For i = -3 To 2 k = Year(Date) + i If k >= 1900 And k < 2000 Then k = k Mod 100 cmbYY.AddItem k Else cmbYY.AddItem k End If If i = 0 Then cmbYY.Value = k Next i For i = 1 To 12 If i <= 12 Then cmbMM.AddItem i If i = DatePart("m", Date) Then cmbMM.Value = i Next i End Sub これでcmbYYというコンボボックスには2010~2015年までが選択可に。 cmbMMというコンボボックスには1月~12月までが選択可能となっています。 これだと普通に年月を出すだけなので、年度に変換する為に Private Sub 年度変換() Public strYYMM As String Public 年度算出 As Date '月が1~9月までなら頭に0を入れて、年月を表示する strYYMM = cmbYY & Format(cmbMM, "00")  '例:201303 201311等 '1月~3月の場合は前年になるように 年度変換 = DateAdd("m", -3, strYYMM) 年度変換 = DateAdd("m", -3, 年度変換) こういう処理を組んでみたのですが、いざ試してみると年度が2049年になったりして暴走してしまいます。 DateAddの使い方がおかしいのでしょうか?

  • EXCELの数値から年月への変換

    EXCELで日付(年月)が数値で入力されているものがあります。 年月へ書式変更すると10月だけ上手く行きません。 良い方法はないでしょうか? 例)変換前 2016.10 (書式 "0.00")    ↓   変換後 1905年7月 (書式 ”yyyy年mm月”) 以上

  • Numbersで数字を月日に変換する演算方法

    損益分岐を計算したいと思っております。 Numbersで数字を月日に変換する演算方法を教えてください。 例:  6.5 であれば 6月15日  12.0 であれば 12月1日  16.5 であれば 1年4月15日など 損益分岐の月日が知りたいので、 12ヶ月を超える場合、年月が出るとベターですが、16月1日のような表記でも構いません。

  • 入力された年月からその月の末日を取得する

    import java.util.*; class Sample { public static void main(String[] args) { System.out.println(args[0]); Calendar cal = Calendar.getInstance(); cal.set(2000,1,1); int y = cal.get(Calendar.YEAR); int m = cal.get(Calendar.MONTH) + 1; int last = cal.getActualMaximum(Calendar.DATE); System.out.print(y + "年" + m + "月の末日は "); System.out.println(last + "日です"); } } で、2000年2月の末日を取得することが出来るのはわかったのですが プログラム上で年月の入力を促してその月の末日を取得するにはどうすればいいのでしょうか? (プログラム実行例) C:\JAVA\SAMPLE>java Sample 2009 2 2009年2月の末日は 28です ↑のようにプログラム上で年 月を入力して実行し、末日を取得したいのですが・・・ 多分この場合、入力数値などに対する例外処理や閏年の処理などもやらないとダメだと思いますがよくわかりません

    • ベストアンサー
    • Java
  • 数字、英語以外で直接入力できるコンピュータ言語はあるのでしょうか?

    自国語入力するプログラミングソフトはありますが、逆コンパイルというのですか、ソースコードは英語に変換されています。プログラム言語の中でアラビア数字や英語以外の数詞や言語で、そのまま変換なしで打ち込めるプログラミングは存在するのでしょうか?よろしくお願い致します。

  • エクセルの年月表示でお願いします

    8桁のランダムな数字約2000行を年月表示へ表示させる方法を教えて下さい。 例:20080318 → 2008年3月 宜しくお願いいたします。

  • ローマ数字の1と2

    英語で文章を打つ事が多いのですが、ローマ数字の出し方がわかりません。 日本語で文章を打つときには、1から変換キーでだすのですが、英語ではどのようにだせばいいのですか? よろしくお願いします。

  • access 現在年月から勤務年月を算出したい。

    Access初心者です。 クエリを使用し、入社年月(yyyymm)から現在までの勤務年月を●年●ヶ月という形で算出したいと思っております。 たくさん同類のご回答を参考にしてみたのですが、日にちを含むものが多く、自信がありません。 例えば、現在-201311とし、 入社年月 201211 ですと、1年1ヶ月        201212 ですと、1年        201301 ですと、11ヶ月   というように、出力させたいと思います。 また、1年0ヶ月、0年11ヶ月という時に、’0’は出力させたくありません。 たくさん同じようなご質問がある中、申し訳ありませんが、至急ご回答いただけるとありがたいです。 よろしくお願い致します。

  • ファイルメーカープロ V6 漢数字→数字変換

    たとえば、 昭和十八年三月十一日 の様に入力がされている、文字列フィールド(計算フィールド)がある場合、これから、計算で、日付フィールドにしたり、 十八 の様に入力がされている、文字列フィールド(計算フィールド)がある場合、これから、計算で、数字フィールドに変換する 簡単な方法は無いでしょうか? 力ずくで、計算を行わせるしかないでしょうか?