weekdayともうします。よろしくお願いします。
VB5を使って、
Format関数とNow関数で日付を表示する処理を作っているのですが、
Format関数での出力書式で解らない事があります。
例えば、今日の日付を、
Format$(Now(),"YYYY/MM/DD")ってやれば、
「2006/01/17」が出力されますよね。
これを、
Format$(Now(),"YYYY/ M/ D")ってやれば、
「2006/ 1/ 17」が出力されてしまいます。
つまり、月、または、日が1桁のときは、前に1つ空白を出力し、
2桁のときは、空白が出力されないようにするには
どうすればいいのでしょうか?
よろしくお願いします。
例えば
debug.? format$(format$(dateserial(1900,12,30),"M"),"@@")
もしくは
debug.? right$(" " & format$(dateserial(1900,12,30),"M"),2)
他にも、配列をテーブルの様に用いて、
dim i as long
dim month(1 to 12) as string *2
for i=1 to 12
month(i)=right$(" " & i,2)
next
このmonth()を使って月表示をする
等など?
ガッさん、
>format$(format$(dateserial(1900,12,30),"M"),"@@")
上記の方法でしたら出来ましたが、
できれば、Format関数に書式を与える事で
一発(年月日を同時に)で取得する方法ってないのでしょうか?
http://www7.big.or.jp/~pinball/discus/vb/60498.html
ReplaceがVB6の新機能の所に書いてあるのでVB5だと無理っぽいけど・・・
今思いつく最短のコード
Replace(Format$(Now(), "YYYY\/MM\/DD"),"/0","/ ")
ひろさん、
>Replace(Format$(Now(), "YYYY\/MM\/DD"),"/0","/ ")
ちょっと、むりでした。
MMじゃなく、Mでもない、何か別の文字で表す事ってできないのかなぁ。
>何か別の文字で表す事ってできないのかなぁ。
まずは、文字指定がどんな種類があるのかを確かめては?
> まずは、文字指定がどんな種類があるのかを確かめては?
でもって、もしもそこに該当する物がないのであれば、
Format単体での一発指定は、無理って事になりますね。
VB6ですが
MSDN 日付/時刻表示書式指定文字 (Format 関数)
http://www.microsoft.com/japan/developer/library/vbenlr98/vafmtuserdefineddateformats.htm
書式指定文字でできないようならば、自力で文字列にしたほうが早いですね。
# それか、
# "YYYY/" & IIf(Month(d)>9,"MM/"," M/") & IIf(Day(d)>9,"DD"," D")
# 見たいに文字列作る?(ありえないなw)
うーん、無理っぽいね
私ならそういう関数を作ってしまいますね。
->Blue さん
これが結構ありえたりして、、
銀行系とかでは、読み違い防止のためとかで、
特にリスト表示などでは桁位置のずれが嫌わ
れる傾向にあると思う(最近はどうかわからないけど、、、)
はじめまして。
自分でフォーマット関数を作ってファンクションにすれば良いのでは?
一個作ればあとは気にせず使えるかと
weekdayです。おはようございます。
みなさんの意見を参考にして関数を作る事にします。
どうも、ありがとうございました。
ツイート | ![]() |