0 / 0 / 0
Регистрация: 14.10.2019
Сообщений: 24
1

Определить, сколько дней осталось до экзамена, до защиты диплома (в днях, годах, месяцах, часах, минутах)

21.10.2019, 10:29. Показов 2902. Ответов 39
Метки нет (Все метки)

Определить, сколько дней осталось до экзамена, до защиты диплома (в днях, годах, месяцах, часах, минутах)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2019, 10:29
Ответы с готовыми решениями:

Подсчитать возраст в годах, месяцах и днях
Условие: Подсчитать возраст в годах, месяцах и днях. Написать код на Си шарп.

Получить возраст в годах месяцах и днях
полных дней (если возраст пациента до месяца) месяцев и дней (если возраст пациента от месяца до...

Найти величину интервала времени в годах, месяцах и днях
Вообщем я такой идиот что не могу понять смысла задачи, были догадки, но мне как-то не верится....

Определить в часах, минутах, секундах длину интервала времени, заданного отметками в часах, минутах и секундах
Друзья, добрый день. Нужно составить программу: С клавиатуры вводится время начала эксперимента...

39
92 / 74 / 24
Регистрация: 31.03.2013
Сообщений: 254
23.10.2019, 10:18 2
VB.NET
1
Dim Timer1 as timer
0
318 / 258 / 58
Регистрация: 27.01.2019
Сообщений: 717
23.10.2019, 21:37 3
Ирина126, Насчет часов и минут не знаю,а остальное так:
VB.NET
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
   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Dr1, Dr2, Tp5 As String
        On Error GoTo 2
        Dr1 = Format(Now, "dd.MM.yyyy")
        TextBox2.Text = Dr1
        Dr2 = TextBox3.Text
        Tp5 = "Прошло: " & GetDateSpanText(Dr2, Dr1)
        Label1.Text = Tp5
        Exit Sub
2:
        MsgBox("Ошибка!" & Chr(13) & "ВВедите даты правильно.")
    End Sub
    Public Function GetDateSpanText(ByVal fromDate As DateTime, Optional ByVal toDate As DateTime = Nothing) As String
        Try
            Dim years As Integer = 0, months As Integer = 0, days As Integer = 0
            If toDate = Nothing Then toDate = DateTime.Now
            Do Until toDate.AddYears(-1) < fromDate
                years += 1
                toDate = toDate.AddYears(-1)
            Loop
            Do Until toDate.AddMonths(-1) < fromDate
                months += 1
                toDate = toDate.AddMonths(-1)
            Loop
            Do Until toDate.AddDays(-1) < fromDate
                days += 1
                toDate = toDate.AddDays(-1)
            Loop
            Return String.Format("{0} г. {1} мес. {2} дн.", years, months, days)
        Catch ex As Exception
            Return "Error"
        End Try
    End Function
Добавлено через 1 час 40 минут
Часы и минуты можно посчитать так,но это будут полные часы и минуты между датами
VB.NET
1
2
   t = DateDiff(DateInterval.Hour, Dr2, Dr1)
        t1 = DateDiff(DateInterval.Minute, Dr2, Dr1)
t и t1 string
0
31 / 8 / 4
Регистрация: 21.01.2018
Сообщений: 52
24.10.2019, 12:33 4
Основные операторы:
для определения даты оператором CDate
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Imports System.Data
sD1 = "#" & CStr(Dr1) & "/" & CStr(M1) & "/" & CStr(Y1) & "#"  ' где Y1-год, M1-месяц, Dr1-день первой даты, цифровые значения
sD2 = "#" & CStr(Dr2) & "/" & CStr(M2) & "/" & CStr(Y2) & "#" ' то же второй даты
T1 = CDate(sD1)
T2 = CDate(sD2)  
Label1.Text = CStr(DateDiff(DateInterval.Month, T1, T2) - 1) ' количество месяцев между датами
Label2.Text = CStr(DateDiff(DateInterval.Day, T1, T2) - 1) ' количество дней между датами
 sD3 = sD1.Remove(Len(sD1) - 1, 1) & " " & CStr(H1) & ":00:00#" ' где H1-ваш час от 0 до 24 в сутках
T3 = CDate(sD3)
 sD4 = sD2.Remove(Len(sD2) - 1, 1) & " " & CStr(H2) & ":00:00#" ' то же второй даты
T4 = CDate(sD4)
Label3.Text = CStr(DateDiff(DateInterval.Hour, T3, T4) - 1) ' количество часов между датами
 sD5 = sD1.Remove(Len(sD1) - 1, 1) & " " & CStr(H1) & ":" & CStr(Min1) & ":00#" ' где M1-ваша минута от 0 до 60 в часе
 T5 = CDate(sD5)
 sD6 = sD2.Remove(Len(sD2) - 1, 1) & " " & CStr(H1) & ":" & CStr(Min2) & ":00#" ' то же второй даты
T4 = CDate(sD4)
 T6 = CDate(sD6)
Label4.Text = CStr(DateDiff(DateInterval.Minute, T5, T6)) ' количество минут между датами
sD7 = sD1.Remove(Len(sD1) - 1, 1) & " " & CStr(H1) & ":" & CStr(Min1)  & ":" & CStr(Sec1) & "#" ' где Sec1-ваша секунда от 0 до 60 в минуте
T7 = CDate(sD7)
sD8 = sD2.Remove(Len(sD2) - 1, 1) & " " & CStr(H2) & ":" & CStr(Min2)  & ":" & CStr(Sec2) & "#" ' то же второй даты
T8 = CDate(sD8)
Label5.Text = CStr(DateDiff(DateInterval.Second, T7, T8) - 1) ' количество секунд между датами
Добавлено через 5 минут
Все sD1-sD8 - это String

Добавлено через 21 минуту
соответственно T1 - T8 - это Date
1
318 / 258 / 58
Регистрация: 27.01.2019
Сообщений: 717
24.10.2019, 12:54 5
A_Qz, Опять же все вычисления это общая разница между датами,а не сколько лет,сколько осталось месяцев за вычетом лет и дней,за вычетом лет и месяцев.Хотя ТС может так и нужно,а это я не понял?И зачем в DateDiff отнимать 1?
0
Лень — мое второе и
3129 / 2330 / 671
Регистрация: 28.11.2014
Сообщений: 3,529
Записей в блоге: 3
24.10.2019, 14:09 6
Тим70, В том то и дело, что тс даже нормально не описал задачу, да и на форуме более не появлялся
0
318 / 258 / 58
Регистрация: 27.01.2019
Сообщений: 717
24.10.2019, 14:25 7
Orlangur1991, Да,я тоже заметил,ТС создал тему,зашел через 4 часа и пропал.Видимо ответ нашел сам.
0
31 / 8 / 4
Регистрация: 21.01.2018
Сообщений: 52
24.10.2019, 17:01 8
Цитата Сообщение от Тим70 Посмотреть сообщение
Опять же все вычисления это общая разница между датами
Я так Ирину и понял, что её интересует общая разница.

Цитата Сообщение от Тим70 Посмотреть сообщение
зачем в DateDiff отнимать 1?
Когда-то я использовал эти операторы, и мне почему-то понадобилось отнять 1, для нужной мне точности. Так и осталось. Возможно, и не надо отнимать, уточнить следует при эксперименте, по вашей потребности.

Добавлено через 17 минут
Цитата Сообщение от Тим70 Посмотреть сообщение
зачем в DateDiff отнимать 1?
Да, в идеале, не надо отнимать.

Добавлено через 2 минуты
VB.NET
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
Imports System.Data
Dim sD1, sD2, sD3, sD4, sD5, sD6, sD7, sD8 As String
Dim T1, T2, T3, T4, T5, T6, T7, T8 As Date 
sD1 = "#" & CStr(Dr1) & "/" & CStr(M1) & "/" & CStr(Y1) & "#"  ' где Y1-год, M1-месяц, Dr1-день первой даты, цифровые значения
sD2 = "#" & CStr(Dr2) & "/" & CStr(M2) & "/" & CStr(Y2) & "#" ' то же второй даты
T1 = CDate(sD1)
T2 = CDate(sD2)  
Label1.Text = CStr(DateDiff(DateInterval.Month, T1, T2)) ' количество месяцев между датами
Label2.Text = CStr(DateDiff(DateInterval.Day, T1, T2)) ' количество дней между датами
 sD3 = sD1.Remove(Len(sD1) - 1, 1) & " " & CStr(H1) & ":00:00#" ' где H1-ваш час от 0 до 24 в сутках
T3 = CDate(sD3)
 sD4 = sD2.Remove(Len(sD2) - 1, 1) & " " & CStr(H2) & ":00:00#" ' то же второй даты
T4 = CDate(sD4)
Label3.Text = CStr(DateDiff(DateInterval.Hour, T3, T4)) ' количество часов между датами
 sD5 = sD1.Remove(Len(sD1) - 1, 1) & " " & CStr(H1) & ":" & CStr(Min1) & ":00#" ' где M1-ваша минута от 0 до 60 в часе
 T5 = CDate(sD5)
 sD6 = sD2.Remove(Len(sD2) - 1, 1) & " " & CStr(H1) & ":" & CStr(Min2) & ":00#" ' то же второй даты
T4 = CDate(sD4)
 T6 = CDate(sD6)
Label4.Text = CStr(DateDiff(DateInterval.Minute, T5, T6)) ' количество минут между датами
sD7 = sD1.Remove(Len(sD1) - 1, 1) & " " & CStr(H1) & ":" & CStr(Min1)  & ":" & CStr(Sec1) & "#" ' где Sec1-ваша секунда от 0 до 60 в минуте
T7 = CDate(sD7)
sD8 = sD2.Remove(Len(sD2) - 1, 1) & " " & CStr(H2) & ":" & CStr(Min2)  & ":" & CStr(Sec2) & "#" ' то же второй даты
T8 = CDate(sD8)
Label5.Text = CStr(DateDiff(DateInterval.Second, T7, T8)) ' количество секунд между датами
Добавлено через 6 минут
Очевидно, что если нужна не общая разница, число лет, + месяцы, + дни, + часы и т.д., то просто это все посчитать, начиная , хотя бы с общей разницы в секундах.
0
318 / 258 / 58
Регистрация: 27.01.2019
Сообщений: 717
25.10.2019, 07:44 9
A_Qz, Если нужна не общая разница,то в даты надо вводить еще и время,иначе его высчитывать просто неоткуда.Я не пробовал,но мне так кажется.
0
31 / 8 / 4
Регистрация: 21.01.2018
Сообщений: 52
25.10.2019, 08:44 10
Ну, вот. Мы так все для Ирины и сделаем, ей самой и делать ничего не придется.
Если посчитать с определением лет, месяцев и т.д...., то я бы посчитал так:

VB.NET
1
2
3
4
5
6
7
8
9
Label0.Text = CStr(DateDiff(DateInterval.Year, T1, T2))
Dim Dsec, Dmin, Dh, Dday, Dmon, Dy As Integer
Dsec = CInt(DateDiff(DateInterval.Second, T7, T8)) - 60*CInt(CInt(DateDiff(DateInterval.Second, T7, T8))/60)
Dmin =CInt(DateDiff(DateInterval.Minute, T5, T6)) -  CInt(CInt(DateDiff(DateInterval.Second, T7, T8))/60)
Dh = CInt(DateDiff(DateInterval.Hour, T3, T4)) - CInt(CInt(DateDiff(DateInterval.Minute, T5, T6))/60)
Dday = CInt(DateDiff(DateInterval.Day, T1, T2)) - CInt(CInt(DateDiff(DateInterval.Hour, T3, T4))/24)
Dmon = CInt(DateDiff(DateInterval.Month, T1, T2)) - CInt(12*CInt(DateDiff(DateInterval.Year, T1, T2)))
Dy = CInt(DateDiff(DateInterval.Year, T1, T2)) 
MsgBox ("Всего осталось до пенсии: " & Cstr(Dy) & " лет, " & Cstr(Dmon) & " месяцев, " & Cstr(Dday) & " дней, " & Cstr(Dh) & " часов, " & Cstr(Dmin) & " минут, " & Cstr(Dsec) & " секунд. ")
Как-то, так. Не проверял, но по идее, должно считаться...
0
318 / 258 / 58
Регистрация: 27.01.2019
Сообщений: 717
25.10.2019, 12:24 11
A_Qz, Добавил ваш код к предыдущему и в результате считает правильно года и месяцы,остальное по 0.Сейчас нет времени разбираться,позже покопаюсь.
А Ирина совсем пропала,даже не смотрит свою тему.
0
Лень — мое второе и
3129 / 2330 / 671
Регистрация: 28.11.2014
Сообщений: 3,529
Записей в блоге: 3
25.10.2019, 12:36 12
Тим70, Уверен, что она не вернется
0
31 / 8 / 4
Регистрация: 21.01.2018
Сообщений: 52
25.10.2019, 16:37 13
Цитата Сообщение от Тим70 Посмотреть сообщение
Добавил ваш код к предыдущему и в результате считает правильно года и месяцы,остальное по 0.
К сожалению, нет времени писать программу для проверки. Может надо заменить Cint на Fix для выделения целой части после деления?

VB.NET
1
2
3
4
5
6
7
8
9
Label0.Text = CStr(DateDiff(DateInterval.Year, T1, T2))
Dim Dsec, Dmin, Dh, Dday, Dmon, Dy As Integer
Dsec = CInt(DateDiff(DateInterval.Second, T7, T8)) - 60*Fix(CInt(DateDiff(DateInterval.Second, T7, T8))/60)
Dmin =CInt(DateDiff(DateInterval.Minute, T5, T6)) -  Fix(CInt(DateDiff(DateInterval.Second, T7, T8))/60)
Dh = CInt(DateDiff(DateInterval.Hour, T3, T4)) - Fix(CInt(DateDiff(DateInterval.Minute, T5, T6))/60)
Dday = CInt(DateDiff(DateInterval.Day, T1, T2)) - Fix(CInt(DateDiff(DateInterval.Hour, T3, T4))/24)
Dmon = CInt(DateDiff(DateInterval.Month, T1, T2)) - Fix(12*CInt(DateDiff(DateInterval.Year, T1, T2)))
Dy = CInt(DateDiff(DateInterval.Year, T1, T2)) 
MsgBox ("Всего осталось до пенсии: " & Cstr(Dy) & " лет, " & Cstr(Dmon) & " месяцев, " & Cstr(Dday) & " дней, " & Cstr(Dh) & " часов, " & Cstr(Dmin) & " минут, " & Cstr(Dsec) & " секунд. ")
0
9 / 8 / 1
Регистрация: 07.10.2019
Сообщений: 172
25.10.2019, 19:15 14
Не по теме!!
Помогите Ламеру!!!
Ребята можно ли в барсике сбросить значение всех переменных в проекте ???
0
318 / 258 / 58
Регистрация: 27.01.2019
Сообщений: 717
25.10.2019, 20:48 15
Orlangur1991, Да я тоже так думаю.
0
31 / 8 / 4
Регистрация: 21.01.2018
Сообщений: 52
25.10.2019, 21:49 16
В общем, я тут по экспериментировал и пришел к такому коду. Но точность ещё надо проверить.

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dsec = CInt(DateDiff(DateInterval.Second, T7, T8)) - 60 * Fix(CInt(DateDiff(DateInterval.Second, T7, T8)) / 60)
If Min1 > Min2 Then
     Dmin = CInt(DateDiff(DateInterval.Minute, T5, T6)) - 60 * (CInt(DateDiff(DateInterval.Hour, T3, T4)) - 1)
Else
     Dmin = CInt(DateDiff(DateInterval.Minute, T5, T6)) - 60 * CInt(DateDiff(DateInterval.Hour, T3, T4))
End If
If H1 > H2 Then
     Dh = CInt(DateDiff(DateInterval.Hour, T3, T4)) - 24 * (CInt(DateDiff(DateInterval.Day, T1, T2)) - 1)
Else
     Dh = CInt(DateDiff(DateInterval.Hour, T3, T4)) - 24 * CInt(DateDiff(DateInterval.Day, T1, T2))
End If
Dday = Dr2
If M1 > M2 Then
     Dmon = CInt(DateDiff(DateInterval.Month, T1, T2)) - Fix(12 * (CInt(DateDiff(DateInterval.Year, T1, T2)) - 1))
     Dy = CInt(DateDiff(DateInterval.Year, T1, T2) - 1)
Else
     Dmon = CInt(DateDiff(DateInterval.Month, T1, T2)) - Fix(12 * CInt(DateDiff(DateInterval.Year, T1, T2)))
     Dy = CInt(DateDiff(DateInterval.Year, T1, T2))
End If
MsgBox("Всего осталось: " & CStr(Dy) & " лет, " & CStr(Dmon) & " месяцев, " & CStr(Dday) & " дней, " & Chr(13) & CStr(Dh) & " часов, " & CStr(Dmin) & " минут, " & CStr(Dsec) & " секунд. ")
0
318 / 258 / 58
Регистрация: 27.01.2019
Сообщений: 717
25.10.2019, 22:23 17
A_Qz, С вашим кодом ничего не получается.Вам самому его было бы проще отладить.Я изменил свой код,добавил в него время и вроде все правильно считает.
Кликните здесь для просмотра всего текста
VB.NET
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
Public Class Form1
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Dr1, Dr2, Tp5 As String
        On Error GoTo 2
        ' Dr1 = Format(Now, "dd.MM.yyyy")
        Dr1 = Now
        ' MsgBox(Dr1)
        TextBox2.Text = Dr1
        Dr2 = TextBox3.Text
        Dr2 = "23.10.2019 23:00:00"
        TextBox3.Text = Dr2
        Tp5 = "Прошло: " & GetDateSpanText(Dr2, Dr1)
        Label1.Text = Tp5
        Exit Sub
2:
        MsgBox("Ошибка!" & Chr(13) & "ВВедите даты правильно.")
    End Sub
    Public Function GetDateSpanText(ByVal fromDate As DateTime, Optional ByVal toDate As DateTime = Nothing) As String
        Try
            Dim years As Integer = 0, months As Integer = 0, days As Integer = 0
            Dim h As Integer = 0, m As Integer = 0, s As Integer = 0
            If toDate = Nothing Then toDate = DateTime.Now
            Do Until toDate.AddYears(-1) < fromDate
                years += 1
                toDate = toDate.AddYears(-1)
            Loop
            Do Until toDate.AddMonths(-1) < fromDate
                months += 1
                toDate = toDate.AddMonths(-1)
            Loop
            Do Until toDate.AddDays(-1) < fromDate
                days += 1
                toDate = toDate.AddDays(-1)
            Loop
 
 
            Do Until toDate.AddHours(-1) < fromDate
                h += 1
                toDate = toDate.AddHours(-1)
            Loop
            Do Until toDate.AddMinutes(-1) < fromDate
                m += 1
                toDate = toDate.AddMinutes(-1)
            Loop
            Do Until toDate.AddSeconds(-1) < fromDate
                s += 1
                toDate = toDate.AddSeconds(-1)
            Loop
 
            Return String.Format("{0} г. {1} мес. {2} дн. {3} HH. {4} mm. {5} ss.", years, months, days, h, m, s)
        Catch ex As Exception
            Return "Error"
        End Try
    End Function
 
End Class
0
Лень — мое второе и
3129 / 2330 / 671
Регистрация: 28.11.2014
Сообщений: 3,529
Записей в блоге: 3
25.10.2019, 22:24 18
marksoft1993, для вопросов, не имеющих отношения к теме, создавайте новую тему или пользуйтесь поиском
0
318 / 258 / 58
Регистрация: 27.01.2019
Сообщений: 717
26.10.2019, 10:50 19
A_Qz, Если Вы отладите свой код,то скиньте его,пожалуйста,целиком.Он меня очень заинтересовал!
0
31 / 8 / 4
Регистрация: 21.01.2018
Сообщений: 52
28.10.2019, 10:32 20
Лучший ответ Сообщение было отмечено Ирина126 как решение

Решение

Цитата Сообщение от Тим70 Посмотреть сообщение
A_Qz, Если Вы отладите свой код,то скиньте его,пожалуйста,целиком.Он меня очень заинтересовал!
Если вычислять секунды, минуты, часы, то алгоритм подобно снежному обвалу вырастает в большое дерево условий. При чем каждая ветка в большинстве своем отличается от другой, поэтому выделить отдельно схожие блоки-процедуры для уменьшения кода пропадает смысл. Величина кода при этом достигает двух-трех сотен строк. Поэтому, если ваш код считает правильно, то он более предпочтителен.

Так как с практической точки зрения секунды, минуты и даже часы, вряд ли кому-то понадобится, поэтому я ограничился алгоритмом только для дней, месяцев, лет. Хотя, если бы мне понадобилось сделать для своей работы полностью - то я бы составил такой код. Он у меня для часов готов, а для секунд и минут почти готов.
Вот так выглядел интерфейс для ввода данных:
Сам код, (могут быть опечатки, так как я его поправлял с кода в своей программе в более удобную читаемую здесь):
VB.NET
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
Imports System.Data
Public Class Form1
Private D1, D2, M1, M2, Y1, Y2 As Integer
Private Dh, Dday, Dmon, Dy As Integer
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
D1 = nmbDay1.Value
M1 = cmbMonth1.SelectedIndex + 1
Y1 = nmbYear1.Value
nmbDay1.Maximum = DateTime.DaysInMonth(Y1, M1)
If D1 > nmbDay1.Maximum Then
   nmbDay1.Value = nmbDay1.Maximum 
   D1 = nmbDay1.Value
End If
D2 = nmbDay2.Value
M2 = cmbMonth2.SelectedIndex + 1
Y2 = nmbYear2.Value
nmbDay2.Maximum = DateTime.DaysInMonth(Y2, M2)
If D2 > nmbDay2.Maximum Then
   nmbDay2.Value = nmbDay2.Maximum 
   D2 = nmbDay2.Value
End If
sD1 = "#" & CStr(D1) & "/" & CStr(M1) & "/" & CStr(Y1) & "#"
T1 = CDate(sD1)
sD2 = "#" & CStr(D2) & "/" & CStr(M2) & "/" & CStr(Y2) & "#"
T2 = CDate(sD2)
If M1 > M2 Then
   If D1 > D2 Then   'M1 > M2   H1 < H2
      hD = DateTime.DaysInMonth(Y1, M1)
      Dday = DateTime.DaysInMonth(Y1, M1) - D1 + D2
      Dmon = DateDiff(DateInterval.Month, T1, T2) - 1 - 12 * (DateDiff(DateInterval.Year, T1, T2) - 1)
      Dy = DateDiff(DateInterval.Year, T1, T2) - 1
    Else  'M1 > M2  D1<D2  H1 < H2
      Dday = D2 - D1
      Dmon = DateDiff(DateInterval.Month, T1, T2) - 12 * (DateDiff(DateInterval.Year, T1, T2) - 1)
      Dy = DateDiff(DateInterval.Year, T1, T2) - 1
    End If
Else  'M1<M2  D1>D2  H1<H2
    If D1 > D2 Then
       hD = DateTime.DaysInMonth(Y1, M1)
       Dday = DateTime.DaysInMonth(Y1, M1) - D1 + D2
       Dmon = DateDiff(DateInterval.Month, T1, T2) - 12 * DateDiff(DateInterval.Year, T1, T2)
       Dy = DateDiff(DateInterval.Year, T1, T2)
    Else 'M1 < M2   D1 < D2  H1 < H2
       Dday = D2 - D1
       Dmon = DateDiff(DateInterval.Month, T1, T2) - 12 * DateDiff(DateInterval.Year, T1, T2)
       Dy = DateDiff(DateInterval.Year, T1, T2)
      End If
End If
MsgBox("Всего осталось: " & CStr(Dy) & " лет, " & CStr(Dmon) & " месяцев, " & CStr(Dday) & " дней")
End Sub
Private Sub cmbMonth1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbMonth1.SelectedIndexChanged
        nmbDay1.Value = 1
        nmbDay1.Maximum = DateTime.DaysInMonth(Y1, M1)
End Sub
Private Sub cmbMonth2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbMonth2.SelectedIndexChanged
        nmbDay2.Value = 1
        nmbDay2.Maximum = DateTime.DaysInMonth(Y2, M2)
End Sub
End Class
Миниатюры
Определить, сколько дней осталось до экзамена, до защиты диплома (в днях, годах, месяцах, часах, минутах)  
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2019, 10:32
Помогаю со студенческими работами здесь

Разность между датами в часах, днях и минутах (interbase bd gdb)
Разность в часах нахожу таким кодом, только подвешен на Button. Подскажите пожалуйста на какое...

Программа для вычисления возраста человека в днях, часах, минутах и секундах
Здравствуйте, помогите пожалуйста. Что нужно добавить, чтоб вычислял общее число дней, часов,...

Пользователь вводит время в Днях,часах,минутах и секундах,программа переводит все в секунды
Пользователь вводит время в Днях,часах,минутах и секундах,программа переводит все в секунды

Кол-во дней между датами в двух ячейках, в месяцах и днях
Есть две даты, например 12-Янв-2005 и 25-Июн-2005. Подскажите можно ли составить формулу, чтобы в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru