powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как вычислить время?
9 сообщений из 9, страница 1 из 1
Как вычислить время?
    #38745668
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему то не получается из текущего времени вычесть две даты, это возможно решить?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim i&, ii&
        Dim st2 As DateTime = Date.Now.ToString()
 
        For i = 0 To DataGridView1.Rows.Count - 1
 
            '   DataGridView1.Rows(i).Cells("Время").Value = st2.ToString()
            For ii = 0 To DataGridView1.Rows.Count - 1
 
                Dim st1 As DateTime = DataGridView1.Rows(i).Cells("Время").Value
                '   k = DataGridView1.Rows(i).Cells("Время 1").Value
                Dim st5 As DateTime = DataGridView1.Rows(i).Cells("Дата/время в ДБО").Value
 
                DataGridView1.Rows(i).Cells("Время 1").Value = (st2 - st1) - st5 'тут выдаёт ошибку....
 
            Next
        Next



далее возникает такая ошибка
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
2
3
4
5
Ошибка  1   Не удалось разрешить перегрузку, так как ни один доступный "-" не может быть вызван с данными аргументами: 
    'Public Shared Operator -(d1 As Date, d2 As Date) As System.TimeSpan': Невозможно преобразовать значение типа "System.TimeSpan" в "Date".
    'Public Shared Operator -(d As Date, t As System.TimeSpan) As Date': Невозможно преобразовать значение типа "System.TimeSpan" в "Date".
    'Public Shared Operator -(d As Date, t As System.TimeSpan) As Date': Невозможно преобразовать значение типа "Date" в "System.TimeSpan".
    'Public Shared Operator -(t1 As System.TimeSpan, t2 As System.TimeSpan) As System.TimeSpan': Невозможно преобразовать значение типа "Date" в "System.TimeSpan"


К примеру мне нужно, из текущего на данный момент времени вычесть "12.09.2014 14:06:11 " эту дату, а затем вычесть 03:25:60 , как это сделать?(эти данные будут в таблице)

А в итоге должна быть дата 00:00:00, Excel же может такое творить, а могучий VB.net нет что ли?
...
Рейтинг: 0 / 0
Как вычислить время?
    #38745697
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visakК примеру мне нужно, из текущего на данный момент времени вычесть "12.09.2014 14:06:11 " эту дату, а затем вычесть 03:25:60 , как это сделать?(эти данные будут в таблице)


Сразу вычти 12.09.2014 17:32:11

А в итоге должна быть дата 00:00:00, Excel же может такое творить, а могучий VB.net нет что ли?

Выбрось VB.net. Все крутые прогеры сейчас на экселе пишут
...
Рейтинг: 0 / 0
Как вычислить время?
    #38745723
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris, Excel да, конечно)))))))))))))))) раньше в техе обожал C++ Builder)))))
...
Рейтинг: 0 / 0
Как вычислить время?
    #38745730
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visak, все очень просто. При вычитании даты из даты получается интервал. Вычитать дату из интервала бессмысленно. На самом деле ты хочешь из даты вычесть другую дату и интервал, что возможно. Нужно изменить одну строку:
Код: vbnet
1.
Dim st1 As TimeSpan = DataGridView1.Rows(i).Cells("Время").Value.TimeOfDay
...
Рейтинг: 0 / 0
Как вычислить время?
    #38745923
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

Пишет ошибку Общий член "TimeOfDay" для типа "String" не найден.
...
Рейтинг: 0 / 0
Как вычислить время?
    #38745981
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visak, ох уж этот VB.NET. Тогда чуть по другому. Предыдущее изменение убираем и меняем строку с вычислением:
Код: vbnet
1.
DataGridView1.Rows(i).Cells("Время 1").Value = st2 - st1.TimeOfDay - st5


P.S. Чисто из любопытства. Зачем ты во второй строке объявляешь переменную типа DateTime, а присваиваешь ей String полагайясь на неявное преобразование типов? Ты понимаешь что приводит к лишним тратам памяти?
...
Рейтинг: 0 / 0
Как вычислить время?
    #38746049
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

Афигеть =) спасибо тебе огромное) а что еще можно присвоить 12.09.2014 14:06:11 - этой дате)))), а ты видел мою темку, с дуликатами? ) поможешь?) честно первый месяц vb.net изучаю, извиняй если что =)
...
Рейтинг: 0 / 0
Как вычислить время?
    #38746069
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visak, дате надо присваивать дату: Dim st2 As DateTime = Date.Now

Советую включить Option Strict и всегда с ним работать. Иначе VB.NET приучит тебя к небрежному стилю программирования. Неявное преобразование типов вещь хорошая, но её надо уметь применять. Чтобы включить Option Strict открой свойства проекта, перейди на закладку Compile и поставь Option Strict = On. Это для текущего проекта. Чтобы для будуших проектов это автоматически делалось. Открой настройки VS: Tools -> Options. Далее Projects and Solutions -> VB Defaults. И там тоже ставим Option Strict = On.

После включения Option Strict наверняка появятся ошибки компиляции из-за несовпадения типов. Однако их будет несложно исправить.
...
Рейтинг: 0 / 0
Как вычислить время?
    #38746071
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visakа ты видел мою темку, с дуликатами? )
Тебе уже ответили, что нужно фильтровать данные перед отображением в DataGridView.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как вычислить время?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]