Как назначить значение времени из текстового поля переменной?
Я пытаюсь выяснить, как установить значения часов, минут, секунд и миллисекунд из текстового поля в длинную переменную, чтобы я мог манипулировать значением времени в приложении.
До сих пор я пытался создать длинную переменную с именем 'workTime', но я не уверен, как бы я назначил значение, введенное в текстовое поле, как период времени.
Например, если пользователь ввел "00: 02: 30: 000", как бы я присвоил это переменной?
Можно ли назначить значение времени таким образом?
Любые советы или альтернативные методы будут высоко оценены.
private void startBtn_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
string wrkString;
string rstString;
int i;
//Assign text box time string to string variables.
wrkString = wrkTbx.Text;
rstString = restTbx.Text;
//Assign text box string value to a date time variable.
DateTime workDt = DateTime.ParseExact(wrkString.Replace(": ", ":").Replace(" :", ":"), "HH:mm:ss:fff", CultureInfo.InvariantCulture);
DateTime restDt = DateTime.ParseExact(rstString.Replace(": ", ":").Replace(" :", ":"), "HH:mm:ss:fff", CultureInfo.InvariantCulture);
StopGoCvs.Background = new SolidColorBrush(Colors.Green);
hornElmt.Play();
// // set up the timer
myTimer = new DispatcherTimer();
myTimer.Interval = new TimeSpan(0, 0, 0, 0, 1);
myTimer.Tick += myTimer_Tick;
//tell timer to stop when it has reached the allocated work time.
if(myTimer.Interval != workDt.TimeOfDay)
{
// start both timers
myTimer.Start();
myStopwatch.Start();
}
else
{
myTimer.Stop();
myStopwatch.Stop();
}
}
2 ответа
Решение
Попробуй это:
DateTime dt = DateTime.ParseExact(time.Replace(": ", ":").Replace(" :", ":"), "HH:mm:ss:fff", CultureInfo.InvariantCulture);
//using System.Globalization
TimeSpan.ParseExact("00 : 02 : 30 : 000", @"%h\ \:\ %m\ \:\ %s\ \:\ %fff", CultureInfo.InvariantCulture.DateTimeFormat)
//from here you can decide to store the timespan value or the miliseconds via its 'TotalMilliseconds' property.
//It may help with readability by removing the space from the input
TimeSpan.ParseExact("00 : 02 : 30 : 000".Replace(" ", ""), @"%h\:%m\:%s\:%fff", System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat)