Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 24.07.2016
Сообщений: 12
1

Сравнение двух дат

25.08.2016, 19:12. Показов 3268. Ответов 8
Метки нет (Все метки)

Здравствуйте. Делаю программу для зоо магазина. Вроде бы уже все сделал но столкнулся с одной проблемой не могу решить, может кто нибудь подскажет

Есть две даты

Первая дата рождения
Вторая дата рождения матери

При выборе матери если дата меньше чем у крольчонка то выдаст ошибку.
С этим все получилось
Visual Basic
1
2
3
4
5
6
7
8
9
Dim a As Date
Dim b As Date
r = Text1.Text
b = Text2.Text
If Text1.Text > Text2.Text Then
Text3.Text = "Первая дата больше"
Else
Text3.Text = "Вторая дата больше"
End If
А вот с этим как и как это все обьединить с датой Что можно использовать вместо or
В программе при добавления, кролика

Я ввожу данные порода матери (Белый великан) и порода отца (Серый велика)

крольчонок должен быть серым или белым великаном но не например черно белым

Visual Basic
1
2
3
4
5
If text1.text="Белый великан" or text2.text="Серый великан" then
msgbox "все верно"
Else
msgbox "Крольчонка нашли в капусте" 
end if
Может у кого нибудь есть скайп могу оплатить.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2016, 19:12
Ответы с готовыми решениями:

Разность двух дат
Добрый день! Есть такая строчка: If CDate(TextBox1.Text) = CDate(excel_sheet.Cells(row, 1)) Then...

Сравнение двух дат и вывод дат находящихся между ними
Здравствуйте! Тут такое дело, вводятся две определенные ДАТЫ в Edit1 и Edit2 в формате...

Сравнение двух дат
Всем Доброго времени суток!!! Подскажите, пожалуйста, как сравнить 2 даты в формате "ДД.ММ.ГГГГ...

Сравнение двух дат
Пишу форум и надо новые постинги помечать гифом типа new . Так вот если постинг больше двух часов...

8
Заблокирован
26.08.2016, 09:07 2
Перечитал задачу несколько раз во всех направлениях и ничего не понял -
как надо объединять дату, породу и капусту?
Цитата Сообщение от utf-16 Посмотреть сообщение
у кого нибудь есть скайп могу оплатить.
Читаем правила и находим нужную ветку где-то там.
0
SoftIce
26.08.2016, 09:08
  #3

Не по теме:

Цитата Сообщение от Shersh Посмотреть сообщение
Перечитал задачу несколько раз во всех направлениях и ничего не понял
Я тоже:D

0
42 / 20 / 9
Регистрация: 15.01.2015
Сообщений: 95
26.08.2016, 09:56 4
Ребята.... я вчера тоже разов 20 перечитал и понял что я ничего не понял ))))
Хотел уточнить что имел ввиду автор, но не решился... не хотел показывать что я тугодум ))))))))))))))
Автор... уточни пожалуйста что надо с чем сравнивать...
OR - ИЛИ ------ должно выполниться одно из условий
AND - И ------- должно выполниться оба условия и одно и второе...
0
oh my god
1444 / 783 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
26.08.2016, 18:52 5
А я тоже ничего не понял, но зато рискнул выполнить эту задачу
наверное предпологаются какието характеристики родителей этого кролика
а затем нужно чтото сравнить и получить некий результат
так как исходных данных очень мало я предположил сделать по градациям цвета и роста матери и оца получив среднее
от этих характеристик, получить-то можно только куда прикручивать сравнение ? )))

на всякий случай я отделался дежурной фразой что это *чудо* нашли в капусте.. это если входные значения окажуться неверными

итак код этого решения:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Option Explicit
Const kr = "Кролика нашли в капусте"
Dim i&, j&, u&, s$, ot$(1), cv$(), sz$()
 
Private Sub Command1_Click(Index As Integer)
    Dim sr_cv&, sr_sz&, x&(3), y&(3)
    With Text1(Index)
 
        Select Case Index
    
            Case 0, 1
                .Text = Format$(Rnd * 42736, "dd.mm.yyyy")
                If Index = 1 Then
 
                    Do While CDbl(CDate(Text1(0).Text)) > CDbl(CDate(.Text))
                        .Text = Format$(Rnd * 42736, "dd.mm.yyyy")
                    Loop
                End If
                ot(Index) = .Text
            Case 2, 3
                .Text = cv(Fix(Rnd * 4)) & " " & sz(Fix(Rnd * 3))
            Case 4 'Получаем кролика
                On Error Resume Next
                For i = 2 To 3 'Средний цвет от отца и мамы
                    s = Split(Trim$(Text1(i)))(0)
                    x(i) = -1: u = UBound(cv)
                    For j = 0 To u
                        If cv(j) = s Then x(i) = j: Exit For
                    Next: If j > u Then GoTo 1
                Next
                If x(3) < x(2) Then x(0) = x(3): x(3) = x(2): x(2) = x(0)
                sr_cv = x(2) + Fix(Rnd * (x(3) - x(2) + 1))
                For i = 2 To 3 'Средний рост от отца и мамы
                    s = Split(Trim$(Text1(i)))(1)
                    x(i) = -1: u = UBound(sz)
                    For j = 0 To u
                        If sz(j) = s Then x(i) = j: Exit For
                    Next: If j > u Then GoTo 1
                Next
 
                If x(3) < x(2) Then x(0) = x(3): x(3) = x(2): x(2) = x(0)
                sr_sz = x(2) + Fix(Rnd * (x(3) - x(2) + 1))
                s = "": s = cv(sr_cv) & " " & sz(sr_sz)
                If Err = 0 Then
                    .Text = s
                Else
1
                    .Text = kr
                End If
 
        End Select
    
    End With
 
End Sub
 
Private Sub Form_Load()
    Randomize Timer
    cv = Split("Белый Серый Пятнистый Черный")
    sz = Split("Огромный Средний Мелкий")
    Text1(4) = kr
    For i = 0 To 3: Command1_Click (i): Next
End Sub
 
Private Sub Text1_Validate(Index As Integer, Cancel As Boolean)
    If Index > 1 Then Exit Sub
    With Text1(Index)
        On Error Resume Next
        .Text = Format$(CDate(.Text), "dd.mm.yyyy")
        If Err > 0 Then
            MsgBox "Введите правильный формат даты (день.месяц.год)"
            .Text = ot(Index)
            Cancel = 1
        Else: ot(Index) = .Text
        End If
    End With
End Sub
и ниже архив с предпологаемым рискованным решением ))
0
Миниатюры
Сравнение двух дат  
Вложения
Тип файла: rar Как.. кролики.rar (2.6 Кб, 3 просмотров)
oh my god
1444 / 783 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
26.08.2016, 19:00 6
Тоесть в моём примере при получении кролика если отец чёрный а мать белая
то градация увеличивается до 4-х значений кролик может быть от черного до белого
а если отец пятнистый а мать чёрная то кролик не получится белым, тоже самое и с размерами
тоесть вычисляется чтото среднее от цвета и роста отца и матери.. ну както так..
0
Миниатюры
Сравнение двух дат  
oh my god
1444 / 783 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
26.08.2016, 19:10 7
Название * Сравнение двух дат* слишком тривиальное для этой темы, больше бы подошло ...
*как кролики кроликов делали* ))
0
Эксперт WindowsАвтор FAQ
17620 / 7464 / 884
Регистрация: 25.12.2011
Сообщений: 11,242
Записей в блоге: 16
26.08.2016, 19:29 8
Цитата Сообщение от utf-16 Посмотреть сообщение
Visual Basic
1
If Text1.Text > Text2.Text Then
Сравнивайте, как дату, а не как текст:

Visual Basic
1
If cdate(Text1.Text) > cdate(Text2.Text) Then
Добавлено через 3 минуты
Цитата Сообщение от utf-16 Посмотреть сообщение
крольчонок должен быть серым или белым великаном но не например черно белым
По-разному можно. Псевдокодом:

Условие1 OR Условие2 AND NOT Условие3

или

IF Условие3 then
else
IF Условие1 OR Условие2 then

или через Select Case
1
0 / 0 / 0
Регистрация: 24.07.2016
Сообщений: 12
27.08.2016, 10:15  [ТС] 9
Цитата Сообщение от fever brain Посмотреть сообщение
что это *чудо* нашли в капусте.. это если входные значения окажуться неверными
итак код этого решения:
Цитата Сообщение от fever brain Посмотреть сообщение
А я тоже ничего не понял, но зато рискнул выполнить эту задачу
наверное предпологаются какието характеристики родителей этого кролика
а затем нужно чтото сравнить и получить некий результат
так как исходных данных очень мало я предположил сделать по градациям цвета и роста матери и оца получив среднее
от этих характеристик, получить-то можно только куда прикручивать сравнение ? )))
на всякий случай я отделался дежурной фразой что это *чудо* нашли в капусте.. это если входные значения окажуться неверными
итак код этого решения:
Visual BasicВыделить код

Option Explicit
Const kr = "Кролика нашли в капусте"
Dim i&, j&, u&, s$, ot$(1), cv$(), sz$()
Private Sub Command1_Click(Index As Integer)
* * Dim sr_cv&, sr_sz&, x&(3), y&(3)
* * With Text1(Index)
Select Case Index
Case 0, 1
* * * * * * * * .Text = Format$(Rnd * 42736, "dd.mm.yyyy")
* * * * * * * * If Index = 1 Then
Do While CDbl(CDate(Text1(0).Text)) > CDbl(CDate(.Text))
* * * * * * * * * * * * .Text = Format$(Rnd * 42736, "dd.mm.yyyy")
* * * * * * * * * * Loop
* * * * * * * * End If
* * * * * * * * ot(Index) = .Text
* * * * * * Case 2, 3
* * * * * * * * .Text = cv(Fix(Rnd * 4)) & " " & sz(Fix(Rnd * 3))
* * * * * * Case 4 'Получаем кролика
* * * * * * * *On Error Resume Next
* * * * * * * * For i = 2 To 3 'Средний цвет от отца и мамы
* * * * * * * * * *s = Split(Trim$(Text1(i)))(0)
* * * * * * * * * * x(i) = -1: u = UBound(cv)
* * * * * * * * * * For j = 0 To u
* * * * * * * * * * * * If cv(j) = s Then x(i) = j: Exit For
* * * * * * * * * * Next: If j > u Then GoTo 1
* * * * * * * * Next
* * * * * * * * If x(3) < x(2) Then x(0) = x(3): x(3) = x(2): x(2) = x(0)
* * * * * * * * sr_cv = x(2) + Fix(Rnd * (x(3) - x(2) + 1))
* * * * * * * * For i = 2 To 3 'Средний рост от отца и мамы
* * * * * * * * * *s = Split(Trim$(Text1(i)))(1)
* * * * * * * * * * x(i) = -1: u = UBound(sz)
* * * * * * * * * * For j = 0 To u
* * * * * * * * * * * * If sz(j) = s Then x(i) = j: Exit For
* * * * * * * * * * Next: If j > u Then GoTo 1
* * * * * * * * Next
If x(3) < x(2) Then x(0) = x(3): x(3) = x(2): x(2) = x(0)
* * * * * * * * sr_sz = x(2) + Fix(Rnd * (x(3) - x(2) + 1))
* * * * * * * * s = "": s = cv(sr_cv) & " " & sz(sr_sz)
* * * * * * * * If Err = 0 Then
* * * * * * * * * * .Text = s
* * * * * * * * Else
1
* * * * * * * * * * .Text = kr
* * * * * * * * End If
End Select
End With
End Sub
Private Sub Form_Load()
* * Randomize Timer
* * cv = Split("Белый Серый Пятнистый Черный")
* * sz = Split("Огромный Средний Мелкий")
* * Text1(4) = kr
* * For i = 0 To 3: Command1_Click (i): Next
End Sub
Private Sub Text1_Validate(Index As Integer, Cancel As Boolean)
* * If Index > 1 Then Exit Sub
* * With Text1(Index)
* * * * On Error Resume Next
* * * * .Text = Format$(CDate(.Text), "dd.mm.yyyy")
* * * * If Err > 0 Then
* * * * * * MsgBox "Введите правильный формат даты (день.месяц.год)"
* * * * * * .Text = ot(Index)
* * * * * * Cancel = 1
* * * * Else: ot(Index) = .Text
* * * * End If
* * End With
End Subи ниже архив с предпологаемым рискованным решением ))
Миниатюры
Вложения
Как.. кролики.rar (2.6 Кб, 0 просмотров)
Я использовал этот вариант
If Text1.Text = Text3.Text Or Text2.Text = Text3.Text Then
MsgBox "Все правильно"
Else
MsgBox "Не правильно"
End If

Но твой по лучше))) Спасибо

Мне нужно было что бы он из двух вариантов текста начал сравнивать с третим и выводит решение.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.08.2016, 10:15

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Сравнение двух дат
Здраствуйте подскажите код для сравнея двух дат. DateTime date1 = new DateTime(0,0,0,0,6,0);//...

Сравнение двух дат
Всем привет. Требуется сравнить даты желаемую и действительную, например есть два варианта: ...

Сравнение двух дат
Одна дата текущая, другая фиксированная в переменной хранится формат даты ниже. Какая есть...

Сравнение двух дат
Есть две даты надо их сравнить и вывести более позднюю дату из двух,то есть например 20.03.16 16-45...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.