当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2010年1月5日火曜日

年月の書式合わせ

皆様、新年あけましておめでとうございます。
2010年になりましたね。東京は一日からずっと晴れていて、気持ちがよい日が続いています。

3月末でこのブログも丸2年になります。
巷では、3年4年と続けている方もいらっしゃるので、それに負けずに続けていきます。

記事に移る前に、Lotus Notes/Domino認知度、再向上のためのランキング協力をお願いします
にほんブログ村 IT技術ブログへ
ポチッと押してください。


と言いつつ、まだまだお正月気分も抜けていない方も多々いらっしゃると思いますので、簡単なところから紹介していきましょう。


日付の書式を整えるというものです。
2010年1月は2010/1、2009年12月は2009/12というように表記をする事がありますね。
このとき、1月は一桁で、12月は二桁と少々バランスが悪いです。
そこで、これらを一律月は二桁で表したいと言うときに実行する方法です。

tmpY := @Text(@Year(@Today));
tmpM := @Right("0"+@Text(@Month(@Today));2);
@Prompt([Ok];"年月の書式合わせ";tmpY + "/" + tmpM)

ポイントとなるのは、月を算出するときに、頭に"0"をつけるところです。
こうすることで、一桁の数値でも強引に二桁にする事ができます。
ただし、このままでは、12月などは、"012"となってしまうので、@Right関数を使って
右から二桁だけを抽出するのです。


いかがでしょうか?簡単にできるので、試してみてください。

ちなみに筆者は誕生日は年月ともに一桁で、何かの書類に誕生日を書くときは、
頭に0をつけて書いています。なんか嫌な感じなんですけどね(^^


【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

3 件のコメント:

D_YM さんのコメント...

こんにちは
Googleで、
「DOMINO8.5.1 インストール手順」
でヒットしたので飛んできました。

これって、

@text(@today;"S0D3")
これじゃダメなのかな?

分割した年と月を組み合わせて年月表示なら
yy:="2010";
mm:="1";
@TEXT(@Texttotime(yy+"/"+mm);"S0D3");

これでいけますが・・・

およよ さんのコメント...

D_YMさん、コメントありがとうございます。

おっしゃるとおり、@Text関数を使ってもできますね。

実現するのに方法は一つではありませんから、好きな方を使っていただければよいと思います。

日付の場合は、@Textを使った方が簡単ですね。

私が示した方法の場合、日付以外の数値でも転用が可能になると言うところと、関数の細かい仕様を覚えていなくてもすぐに使えると言うところがミソでしょうか(^^;(苦しいかな?)

D_YM さんのコメント...

昔々、汎用機系の開発を行っていた頃、対外的な費用計算する場合、プログラムステップ数での工数計算を行っていたことがあります。
1ステップで終わる部分で数ステップ使えと指示されていたことがあり、とても違和感を感じたことがありました。
ただし、20年も前の話なので、今はそんな工数計算はしないでしょうけれどね。
(年がばれるな・・)


経験上、後から見やすいものにするためにも簡単な表記のほうが良いかなと感じています。

まあ、年寄りの戯言と思って流してください。