Cannot convert from 'System.DateTime' to 'System.TimeSpan'

0

Witam wszystkim,

Jestem bardzo początkującym w C# i potrzebuję Waszej pomocy. chcę odjąć jedną godzinę od drugiej to nawet mi się udało ale od wyniku potrzebuje odjąć przerwę i tu zaczyna się problem bo jedną wartość mam w datetime a drugą timespan i nie mogę nic zrobić

 public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void okButton_Click(object sender, EventArgs e)
        {
            DateTime started = DateTime.ParseExact(startedTextBox.Text, "HH.mm", null);
            DateTime finished = DateTime.ParseExact(finishedTextBox.Text, "HH.mm", null);
            DateTime breakTime = DateTime.ParseExact(breakTextBox.Text, "HH.mm", null);
           
            TimeSpan totalNoBreak = finished.Subtract(started);
           
            
            TimeSpan total = totalNoBreak.Subtract(breakTime);
            totalTextBox.Text = total.ToString();
        }
    }
0
DateTime started = DateTime.ParseExact("15:20", "HH:mm", null);
DateTime finished = DateTime.ParseExact("17:20", "HH:mm", null);
TimeSpan breakTime = new TimeSpan(0, 15, 0);

TimeSpan total = finished.Subtract(started);
total = total.Subtract(breakTime);

Console.WriteLine(total);

// 01:45:00

Takie coś?

0

Dzięki już lepiej ale teraz mam drugi problem.

błąd typu: System.FormatException: 'Input string was not in a correct format.

protected void okButton_Click(object sender, EventArgs e)
        {
            DateTime started = DateTime.ParseExact(startedTextBox.Text, "HH:mm", null);
            DateTime finished = DateTime.ParseExact(finishedTextBox.Text, "HH:mm", null);
            // DateTime breakTime = DateTime.ParseExact(breakTextBox.Text, "HH.mm", null);
            TimeSpan breakTime = TimeSpan.ParseExact(breakTextBox.Text, "HH:mm", null);
           
            TimeSpan totalNoBreak = finished.Subtract(started);
           
            
            TimeSpan total = totalNoBreak.Subtract(breakTime);
            totalTextBox.Text = total.ToString();
        }

aplikacja mi się uruchamia ale po wprowadzeniu danych wywala mi błąd

Dane pobieram z textbox może dlatego hmmm

0

A co dokładnie wpisujesz do textboksa?

0
somekind napisał(a):

A co dokładnie wpisujesz do textboksa?

Próbowałem dwie opcje albo 11:30 albo 11.30 i jeszcze godziny mi oblicza ale podając przerwę wywala mi błąd ze nie właściwy format

0

udało się ehhh głupie rozwiązanie:


 DateTime started = DateTime.ParseExact(startedTextBox.Text, "HH:mm", null);
            DateTime finished = DateTime.ParseExact(finishedTextBox.Text, "HH:mm", null);
           
            TimeSpan breakTime = TimeSpan.ParseExact(breakTextBox.Text, "mm", null);  // ostatecznie wywaliłem zmieniłem z "HH:mm" na samo "mm" I podaje tylko minuty i działa
           
            TimeSpan totalNoBreak = finished.Subtract(started);
           
            
            TimeSpan total = totalNoBreak.Subtract(breakTime);
            totalTextBox.Text = total.ToString();

wiec dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1