- - PR -
C++での日付の扱い
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-06 00:22
C++のコンソールアプリケーションでDBの更新を行う
バッチプログラムを作成しているのですが、 ある関数の引数にchar*型で日付を渡しているのですが、その引数に "YYYY/MM/DD"形式で渡される場合と、"YYYYMMDD"形式で渡される場合が ある為、その関数内で"YYYY/MM/DD"形式に変換し直そうと思っているのですが、 C++には、VBのように標準では日付型の変数がなく単純な型変換で解決できそうに ないので、困っています。 もしかすると簡単な事なのかもしれませんが、解決法を教えて頂けないでしょうか? よろしくお願いします。 | ||||||||
|
投稿日時: 2007-09-06 07:24
文字列にスラッシュが含まれるか、確認する
含まれなければ 4 2 2 で区切って文字列を取り出し、 スラッシュをはさんで整形する 6 4 にスラッシュを挿入、でもできる(幅注意) | ||||||||
|
投稿日時: 2007-09-06 09:12
C++的ではありませんが、sscanfで"%4d%2d%2d"で拾ってみて戻り値3(全部ヒット)なら"YYYY/MM/DD"形式にsprintfで直す、とかどうでしょう。
#異常文字列のことは考慮の外ですが [ メッセージ編集済み 編集者: D.Matsu 編集日時 2007-09-06 09:14 ] | ||||||||
|
投稿日時: 2007-09-06 11:23
月と日が必ず0サプレス(1月が01など)でくるならば単純に文字数で判断していいのではないでしょうか?
そうでなければJittaさんが言われてる通り/を検索が楽ですね。 整形に関しては他の方が書かれてるので省略します。 _________________ by うちうせん | ||||||||
|
投稿日時: 2007-09-06 12:00
サプレス(抑制)しないでね。111 だと、11月1日なのか、1月11日なのか、わからないから。 | ||||||||
|
投稿日時: 2007-09-06 16:52
簡単な事というか、これがわからないということは他の部分でも相当苦労しているのではないかと 想像するのですが...(よくC/C++で話題になる"ポインタ/配列/文字列の理解"とか大丈夫?) これからも似たような仕事をしなければならないのならば、"Visual"でない(Win32APIだの MFCだの.NETだのの使い方じゃなくてもっとプリミティブな処理についての)C/C++等言語の 例題付きの本を一冊こなしておくぐらいしたほうがいいのではないでしょうか。 #K&RやStroustrupとはいわないけど、「独習C++」とかあんな程度の。 | ||||||||
|
投稿日時: 2007-09-06 17:17
以前、上の人に説明するのに困ったことを思い出しました…。 そういえば、皆さんはこの場合なんと言ってるんでしょうか。 私は「ゼロフィル」「ゼロ埋め」でしたが、ぐぐってもそれが一般的とは、断じることができないので。 「正規化」だとちょっと広すぎるし。 | ||||||||
|
投稿日時: 2007-09-06 18:06
ってスレがカフェになかったっけ? ゼロ パディング(埋め)だったかと |