• ベストアンサー

教えて!西暦の日付

西暦の日付を出力したいです。 年と月だけで良いです。 例えば、Oct 2004 教えてください! お願いします。

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

  • ベストアンサー
  • hitomura
  • ベストアンサー率48% (325/664)
回答No.3

#1さんの方法に加えて、strftime()を使用するという手もあります。 手順としては、  1.、2.(#1さんと同じ)  3.結果格納用のchar配列を用意する  4.strftime( 3.で用意した配列名, ←の領域長, "%b %Y", 2.で作成したtm構造体 )  5.結果を出力する となります。 個人的には、一目で「時間→文字列処理をやっている」とわかるこちらのほうをお勧めします。

参考URL:
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/strftime.3.html
2003saki
質問者

お礼

助かりました。 どうも、ありがとうございます。

その他の回答 (2)

  • msykykt
  • ベストアンサー率35% (15/42)
回答No.2

ソースファイルの頭で #include <time.h> を追加して、 関数で time_t ltm; struct tm *now; と変数宣言し、 time(&ltm); now=localtime(&ltm); を実行すれば now->tm_yearに「西暦-1900」、 now->tm_monに0~11の「月ー1」 が取得できます。 形式に拘らなければ localtimeの代わりにctimeを使うという手もあり。 ANSI互換だからどの環境でもいけるかと思うのですが。

2003saki
質問者

お礼

助かりました、 どうもありがとうございます。 ポイントは二人しかないので、 ごめんなさい。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

質問文が簡潔すぎて処理条件と目的が読み取れないので以下の仕様と仮定します。 ・今日の西暦年と月名を取得する ・コンソールへ出力する ・言語はANSIーC 9899 まず月の名前をデータとして配列に作っときましょう。 char month[][] = "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"} ; 1.time()関数で現在時刻を取得 2.1で取得した現在時刻をlocaltime()関数でtm構造体に変換 3.tmのメンバー変数tm_yearを年として表示 4.tmのメンバー変数tm_monを添え字としてmonth[][]を参照し、月名を表示 参考URLは時間関連標準関数の仕様です。

参考URL:
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/localtime.3.html
2003saki
質問者

お礼

助かりました、 どうもありがとうございます。

関連するQ&A