- - PR -
入力した各数字を日付に変換したい。
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-05 19:33
いつもお世話になっています。
Dim dt As Date = Now() Dim y As Single = Val(Me.TextBox1.Text) Dim m As Single = Val(Me.TextBox2.Text) Dim d As Single = Val(Me.TextBox2.Text) y=年、m=月、d=日と言う項目です。 これを日付に変換して dt.DayOfYear-mdyDate.DayOfYear と言う式で計算し、アプリケーションが立ち上がった時に計算後の値が別Labelに 表示されるようにしたいと思っています。 (疑問点) ・y=年、m=月、d=日をどうやって日付にするか。 ・試しに実験してmdyDate.DayOfYearを数字に置き換えて計算しようと したが Private Sub Form1_Loadの時に表示(計算)されていない。 (Dim dt As Date = Now()と設定) 以上よろしくお願いします。ご不明な所はお尋ね下さい。 | ||||||||
|
投稿日時: 2004-05-05 19:34
(追加)
使用言語はVB.netです。 | ||||||||
|
投稿日時: 2004-05-05 19:50
>・y=年、m=月、d=日をどうやって日付にするか。
BCL (標準クラスライブラリ)には、日付を扱うための型として DateTime 構造体が用意されています。 DateTime 型の DateTime(int, int, int) 形式のコンストラクタは、年月日の3つの整数値から、対応する DateTime 型を生成するので、それを利用してください。 なお、DateTime 型の詳細と、DateTime 型と VB.NET に VB6 との互換のために残されている Date 型との互換性などについては、ヘルプで確認してみてください。 >したが Private Sub Form1_Loadの時に表示(計算)されていない。 具体的に、どういうコードを書きましたか? _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2004-05-05 20:25
非常に初歩的な失敗の様な気がして恥ずかしいのですが・・・
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim onkdt As Single onkdt = 3000 - 2000 Me.Label12.Text = onkdt End Sub ビルドしても計算結果が表示されませんでした。 >年月日の3つの整数値から、対応する DateTime 型を生成するので、それを利用してください あまりよくわからないのですが、 Dim myDateTime As DateTime myDateTime = System.DateTime.ParseExact(dateTimeString, _ "ddd, d MMM yyyy HH':'mm':'ss zzz", _ System.Globalization.DateTimeFormatInfo.InvariantInfo, _ System.Globalization.DateTimeStyles.None) Console.WriteLine(myDateTime.ToString()) これの事ですか?あまり意味がわからないです× | ||||||||
|
投稿日時: 2004-05-05 21:00
>Dim onkdt As Single
>onkdt = 3000 - 2000 >Me.Label12.Text = onkdt > >ビルドしても計算結果が表示されませんでした。 特別変なことをしているようには見えないです。 1000の代わりに何が表示されるんでしょう? >年月日の3つの整数値から、対応する DateTime 型を生成するので、それを利用してください あまりよくわからないのですが、 >これの事ですか?あまり意味がわからないです× DateTime 型しかあってないですね (>_< あなたの質問は >y=年、m=月、d=日と言う項目です。 >これを日付に変換して だったので、私はそれに答えたつもりです。 コードであらわすと int y = 2004; int m = 5; int d = 5; DateTime dt = new DateTime (y, d, m); のような感じです。 # 済みませんが VB は不得意なので、VB への読み替えは自分でお願いします m(_ _)m _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2004-05-05 21:01
普通に表示されるような気がするんですが、ひょっとしてデザイナの画面ですか? 実行しても表示されないですか?
「DateTime(int, int, int) 形式のコンストラクタ」なんですから、コンストラクタの話です(ParseExactメソッドではありません)。 # っていうか、dateTimeString っていうのはどこから… あと、何となく変数は Integer にする方が良いような気がしますが… --追記-- ややかぶり^^; [ メッセージ編集済み 編集者: なちゃ 編集日時 2004-05-05 21:05 ] | ||||||||
|
投稿日時: 2004-05-05 22:36
諸農です。
Now()で取得された現在の年間積算日から特定の日付で 指定された年間積算日の差を日数で求めたいという事で しょうか。 DateTime型同士の引き算ではTimeSpan型のインスタンスが 返されます。TimeSpan型にはDaysプロパティがあり、これは 「このインスタンスで表される日数を端数なしで取得します。」 との事ですので、こちらを利用されてもいいのではないでしょうか。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2004-05-05 23:00
すいません。Label2の数字を12と入力していました×(アホですね…)
実行してもできないと返信しようとしたところ、投稿の字が拡大されていた ので気づきました。 あらためてアドバイスの事をチャレンジして報告します。 |
1|2|3
次のページへ»