前提・実現したいこと
VB.NETで勤務時間の管理をしたい。
今はテキストボックスで作成していますが、時間表記に出来るならこだわりはありません。
VB.NETで勤務時間の管理をしたいと思い、以下のように開始時間、終了時間、休憩で分けているのですが、時間表記への変更や桁数の制限方法がわかりません。
記入した数字を時間表記へ変換したい。
例:600→6:00
桁数の制限を四桁までにしたい。
何を作っているのですか? VB.NET で作れるものは例えば Windows Forms, WPF, ASP.NET Web Forms などいろいろあって、それぞれ質問者さんがやりたいことを実現する方法は違うのですよ。
それから、開発環境(Visual Studio のバージョン、.NET なのか Core なのかとそのバージョンなど)を書きましょう。
windows Formsで作成しております。
また開発環境は.NETになります。
TextChanged イベントで Text を書き換えればいいと思います。Text プロパティから数字のみ抽出し、それが 5 桁以上あれば 4 桁に切り捨て、三桁以上なら下二桁目の前にコロンを挿入したものを Text プロパティに再代入します。
無恥ですみません。。
TextChangedイベントだとどのように表記すればよいのでしょうか?
具体的にどこがわかりませんか?
数字を抽出して桁を切り捨ててコロンを付けるところがわからないです。。
数字を抽出して 4 桁に切り落とし、リストにする
string s = "abc600"; // サンプル文字列
List<char> digits = s.Where(a => char.IsDigit(a)).Take(4).ToList();
二桁以上ある場合は下二桁目の前にコロンを挿入
if (digits.Count > 2) digits.Insert(digits.Count - 2, ':');
リストを文字列にして出力
Console.WriteLine(string.Concat(digits));
以上はサンプル文字列を加工してコンソールに出力しているだけなので、当然テキストボックスは何も変化しません。イベントを拾って Text プロパティを加工してください。
あと、TextChanged だともしかしたら Text プロパティに代入することでキャレットの位置が変わるかもしれません。その場合は TextChanged ではなく Validated を使うのが良いのではないかと思います。
> windows Formsで作成しております。
> また開発環境は.NETになります。
それを質問欄を編集して追記してください。コメント欄は初期画面では開いてないので読まない人がいるので。あと、Visual Studio のバージョンも書いてください。次回質問する際は聞かれる前に質問に書くようにしましょう。
それから、分を 0, 15, 30, 45 と 15 分単位で丸めたいようですが、それも質問に最初から書いてください。情報の後出し小出しは最も嫌われることの一つです。
回答1件
あなたの回答
tips
プレビュー