Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Нужна помощь. Добавлено: 23.12.11 11:32  

Автор вопроса:  Miron | ICQ: 618808955 
Простейшая программа сравнивает две даты и выводит количество дней, но говорит, что данный тип не может преобразовать. Где можно изменить тип или на какой поменять?
Option Explicit On
Public Class Form1
    Dim dtmDate1 As Date
    Dim dtmDate2 As Date
    Dim dtmdays As Long
    Private Sub выход_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles выход.Click
        End
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        dtmDate1 = CDate(TxtDate1.Text)
        dtmDate2 = CDate(TxtDate2.Text)
        dtmdays = dtmDate1 - dtmDate2'вот здесь выдаёт ошибку
        TxtResult.Text = dtmdays
    End Sub
End

Ошибка 1 Невозможно преобразовать значение типа "System.TimeSpan" в "Long".

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 ---Fix---



ICQ: 348680795 

Вопросов: 12
Ответов: 33
 Профиль | | #1 Добавлено: 23.12.11 12:57
в Net число больше не является промежутком времени.

Правильный вариант:
  1. Option Explicit On
  2. Public Class Form1
  3.     Dim dtmDate1 As Date
  4.     Dim dtmDate2 As Date
  5.     Dim Period As TimeSpan 'класс представляющий промежуток времени
  6.  
  7.     Private Sub выход_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  8.         End
  9.     End Sub
  10.  
  11.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  12.         If Date.TryParse(TxtDate1.Text, dtmDate1) = False Then
  13.             MessageBox.Show("Неверное представление первой даты")
  14.             Exit Sub
  15.         End If
  16.  
  17.         If Date.TryParse(TxtDate1.Text, dtmDate1) = False Then
  18.             MessageBox.Show("Неверное представление второй даты")
  19.             Exit Sub
  20.         End If
  21.  
  22.         dtmDate2 = CDate(txtDate2.Text)
  23.         Period = dtmDate1 - dtmDate2 'вот здесь выдавал ошибку
  24.         'или можно так
  25.         'Period = dtmDate1.Subtract(dtmDate2)
  26.         txtResult.Text = Period.Days.ToString & " дней"
  27.     End Sub
  28. End Class

Ответить

Номер ответа: 2
Автор ответа:
 Miron



ICQ: 618808955 

Вопросов: 1
Ответов: 1
 Профиль | | #2 Добавлено: 23.12.11 13:27
Спасибо) А високосные года он как 365 или 366 считает, не знаешь?

Ответить

Номер ответа: 3
Автор ответа:
 ---Fix---



ICQ: 348680795 

Вопросов: 12
Ответов: 33
 Профиль | | #3 Добавлено: 23.12.11 13:40
все считает как положено, единственное за чем нужно следить, это переходы на летнее, зимнее время

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам