Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual Basic .NET

Войти
Регистрация
Восстановить пароль
 
Khaker_tt
30 / 30 / 6
Регистрация: 24.11.2015
Сообщений: 330
Завершенные тесты: 1
#1

Получение интервала между двумя датами в DGV - Visual Basic .NET

10.09.2016, 17:12. Просмотров 258. Ответов 14
Метки нет (Все метки)

Уважаемые форумчане. не могу решить одну проблему. Проблема в том что сравнить двух дат и покрасит их тремя цветами на DGV. подробности на процедуре sub swet(). Заранее спасибо...
0
Вложения
Тип файла: rar primer_2.rar (131.5 Кб, 2 просмотров)
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2016, 17:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получение интервала между двумя датами в DGV (Visual Basic .NET):

Как вычислить разницу в годах между двумя датами? - Visual Basic .NET
Задачка школьного уровня но напрочь забыл(. Осложняется еще и тем, что первоначальная дата задается пользователем в трех текстовых окнах:...

Определить количество дней четвертого числа между двумя датами - Visual Basic .NET
Перед мной стоит задача определить сколько к примеру 4-тых чисел между датой N1 и датой N2 К примеру с даты 01.01.2016 по 01.05.2016 - 29...

.NET 4.x Получение интервала метаданных из потока - Visual Basic .NET
Как получить название песни? Пытаюсь прочитать байт размера метаданных из потока http://play.sas-media.ru/play_96. заголовок потока...

Вычислить количество дней между датами - Visual Basic .NET
Нужно вычислить количество дней между датами. Есть стандартные функции?

Как вычислить разницу между датами - Visual Basic .NET
Господа подскажите в программе нужно узнать разницу времени между началом заезда автомобиля и его завершения . для примера время начала и...

.NET 4.x Определить количество полных недель и понедельников между заданными датами - Visual Basic .NET
Заданы две даты. Определить количество полных недель и понедельников между этими датами. Добавлено через 2 часа 27 минут Ау кто...

14
Yury Komar
Модератор
2265 / 2070 / 327
Регистрация: 27.01.2014
Сообщений: 3,634
Завершенные тесты: 1
10.09.2016, 17:51 #2
Khaker_tt, по какому условию красить даты?
0
Khaker_tt
30 / 30 / 6
Регистрация: 24.11.2015
Сообщений: 330
Завершенные тесты: 1
10.09.2016, 20:59  [ТС] #3
Yury Komar, по условию окончание дата оплаты. то есть сравнит сегодняшний дата с дата окончание оплату и если срок истёк их красит красным цветом. когда обе даты ровни то их красит жёлтым цветом когда срок оплати ещё не истёк их надо красит зелёным цветом.
0
Yury Komar
Модератор
2265 / 2070 / 327
Регистрация: 27.01.2014
Сообщений: 3,634
Завершенные тесты: 1
10.09.2016, 21:26 #4
Khaker_tt, а срок оплаты истекает через сколько дней?
0
Khaker_tt
30 / 30 / 6
Регистрация: 24.11.2015
Сообщений: 330
Завершенные тесты: 1
10.09.2016, 21:29  [ТС] #5
Yury Komar, после окончание срока столбец (подату). Когда срок по дату заканчивается .
0
Yury Komar
Модератор
2265 / 2070 / 327
Регистрация: 27.01.2014
Сообщений: 3,634
Завершенные тесты: 1
10.09.2016, 21:43 #6
кароче, с таким ТЗ вы далеко не уйдете...
Получение интервала между двумя датами в DGV
Код с коленки, чисто чтоб подать идею
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
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        For i = 1 To 25
            DataGridView1.Rows.Add(i, "xnj-nj", "jfdahkjahs", Now.ToShortDateString, Now.Date.AddDays(i).ToShortDateString)
            If DateDiff(DateInterval.Day, CDate(DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(4).Value), Now.Date) > 30 Then
                DataGridView1.Rows(DataGridView1.Rows.Count - 1).DefaultCellStyle.BackColor = Color.IndianRed
            ElseIf DateDiff(DateInterval.Day, CDate(DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(4).Value), Now.Date) < 0 Then
                DataGridView1.Rows(DataGridView1.Rows.Count - 1).DefaultCellStyle.BackColor = Color.LightGreen
            ElseIf DateDiff(DateInterval.Day, CDate(DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(4).Value), Now.Date) > 0 And _
    DateDiff(DateInterval.Day, CDate(DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(6).Value), Now.Date) < 30 Then
                DataGridView1.Rows(DataGridView1.Rows.Count - 1).DefaultCellStyle.BackColor = Color.GreenYellow
            Else
                DataGridView1.Rows(DataGridView1.Rows.Count - 1).DefaultCellStyle.BackColor = Color.GreenYellow
            End If
        Next
        For i = 1 To 50
            DataGridView1.Rows.Add(i, "xnj-nj", "jfdahkjahs", Now.ToShortDateString, Now.Date.AddDays(5 - i).ToShortDateString)
            If DateDiff(DateInterval.Day, CDate(DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(4).Value), Now.Date) > 30 Then
                DataGridView1.Rows(DataGridView1.Rows.Count - 1).DefaultCellStyle.BackColor = Color.IndianRed
            ElseIf DateDiff(DateInterval.Day, CDate(DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(4).Value), Now.Date) < 0 Then
                DataGridView1.Rows(DataGridView1.Rows.Count - 1).DefaultCellStyle.BackColor = Color.LightGreen
            ElseIf DateDiff(DateInterval.Day, CDate(DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(4).Value), Now.Date) > 0 And _
          DateDiff(DateInterval.Day, CDate(DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(4).Value), Now.Date) < 30 Then
                DataGridView1.Rows(DataGridView1.Rows.Count - 1).DefaultCellStyle.BackColor = Color.GreenYellow
            Else
                DataGridView1.Rows(DataGridView1.Rows.Count - 1).DefaultCellStyle.BackColor = Color.GreenYellow
            End If
        Next
    End Sub
2
Khaker_tt
30 / 30 / 6
Регистрация: 24.11.2015
Сообщений: 330
Завершенные тесты: 1
10.09.2016, 21:58  [ТС] #7
Yury Komar, я благодарен но знаете у меня там в проекте такой вариант по моему не получается. Если вы посмотрели пример там трудно применят ваш код. У меня всё там связано с базой данных. мне интересует проседура sub swet.
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    Sub swet()
        'For j = 0 To DataGridView1.Rows.Count - 1
        '    If IsDBNull(DataGridView1.Rows(j).Cells("Подату").Value) Then
        '        Dim chisla As Date
        '        chisla = DataGridView1.Rows(j).Cells("Подату").Value     ошибка вот здесь ......
        '        'DataGridView1.Rows(j).Cells("Подату").Value
        '        Dim N As Date = Now
        '        Dim k = DateDiff(DateInterval.Day, chisla, N)
        '        If k > 0 Then
        '            DataGridView1.Rows(j).DefaultCellStyle.BackColor = Color.Red
        '        ElseIf k = 0 Then
        '            DataGridView1.Rows(j).DefaultCellStyle.BackColor = Color.Yellow
        '        Else
        '            DataGridView1.Rows(j).DefaultCellStyle.BackColor = Color.LawnGreen
        '        End If
        '    End If
        'Next
 
    End Sub
0
Yury Komar
Модератор
2265 / 2070 / 327
Регистрация: 27.01.2014
Сообщений: 3,634
Завершенные тесты: 1
10.09.2016, 22:01 #8
Khaker_tt, я не буду смотреть ваш проект. Во-первых он у меня не не открывается, так как сделан в студии выше 2010, а во-вторых, попробуйте всетаки сами сделать, и уже конкретные вопросы задавайте, а не такого плана: Я НЕ МОГУ, ПОСМОТРИТЕ И СДЕЛАЙТЕ "ЗА МЕНЯ".
1
ovva
1915 / 1633 / 418
Регистрация: 02.02.2013
Сообщений: 1,537
Записей в блоге: 2
10.09.2016, 22:29 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
For j = 0 To DataGridView1.Rows.Count - 1
    If Not IsDBNull(DataGridView1.Rows(j).Cells(0).Value) Then
        Dim chisla As Date
        chisla = DataGridView1.Rows(j).Cells(0).Value
        Dim N As Date = Now
        Dim k = DateDiff(DateInterval.Day, chisla, N)
        If k > 0 Then
            DataGridView1.Rows(j).DefaultCellStyle.BackColor = Color.Red
        ElseIf k = 0 Then
            DataGridView1.Rows(j).DefaultCellStyle.BackColor = Color.Yellow
        Else
            DataGridView1.Rows(j).DefaultCellStyle.BackColor = Color.LawnGreen
        End If
    End If
Next
3
Khaker_tt
30 / 30 / 6
Регистрация: 24.11.2015
Сообщений: 330
Завершенные тесты: 1
10.09.2016, 22:36  [ТС] #10
ovva, спасибо все нормально вот на рисунке:
0
Миниатюры
Получение интервала между двумя датами в DGV  
Khaker_tt
30 / 30 / 6
Регистрация: 24.11.2015
Сообщений: 330
Завершенные тесты: 1
10.09.2016, 22:40  [ТС] #11
ovva, тут снова получается ошибочка когда я уберу оплату из кого не будь там появляется такая ошибка: откуда это ошибка после изменение появляется?
0
Миниатюры
Получение интервала между двумя датами в DGV  
Yury Komar
Модератор
2265 / 2070 / 327
Регистрация: 27.01.2014
Сообщений: 3,634
Завершенные тесты: 1
10.09.2016, 22:45 #12
Khaker_tt, потому что дполнительную проверку на содержание ячейки надо делать... она пустая.
0
Khaker_tt
30 / 30 / 6
Регистрация: 24.11.2015
Сообщений: 330
Завершенные тесты: 1
10.09.2016, 22:48  [ТС] #13
Yury Komar, вот здесь же проверяется по моему:
vb.net
1
If Not IsDBNull(DataGridView1.Rows(j).Cells(0).Value) Then
0
Yury Komar
Модератор
2265 / 2070 / 327
Регистрация: 27.01.2014
Сообщений: 3,634
Завершенные тесты: 1
10.09.2016, 22:56 #14
Khaker_tt, так она и не NULL, она ""
1
Khaker_tt
30 / 30 / 6
Регистрация: 24.11.2015
Сообщений: 330
Завершенные тесты: 1
10.09.2016, 23:03  [ТС] #15
Yury Komar, я очень благодарен ВАМ ВСЕМ после проверке получилась у меня.....
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 For j = 0 To DataGridView1.Rows.Count - 1
            If Not IsDBNull(DataGridView1.Rows(j).Cells(4).Value) Then
                Dim chisla As Date
                If DataGridView1.Rows(j).Cells(4).Value <> "" Then
                    chisla = DataGridView1.Rows(j).Cells(4).Value
                    Dim N As Date = Now
                    Dim k = DateDiff(DateInterval.Day, chisla, N)
                    If k > 0 Then
                        DataGridView1.Rows(j).DefaultCellStyle.BackColor = Color.Red
                    ElseIf k = 0 Then
                        DataGridView1.Rows(j).DefaultCellStyle.BackColor = Color.Yellow
                    Else
                        DataGridView1.Rows(j).DefaultCellStyle.BackColor = Color.LawnGreen
                    End If
                End If
            End If
        Next
0
10.09.2016, 23:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2016, 23:03
Привет! Вот еще темы с ответами:

Разница между датами в формате "год/мес/день" - Visual Basic .NET
Простая вроде задачка, но Бейсик я увидел тока сегодня первый день :) потратил 2 часа на изучение функций связаны с датами, но почему то...

Парсинг между двумя тегами Html - Visual Basic .NET
Доброго времени суток. Уверен, на форуме было не мало подобных тем, но определенно этого запроса не нашел. Очень надеюсь на вашу помощь....

Поиск слов между двумя знаками - Visual Basic .NET
Как найти слово которое стоит между 2 знаками к примеру: ААААА:ВВВВВ,ФФФФФ Мне надо достать ВВВВВ, т.е. между : и , как можно это...

Вычитание разницы между двумя числами - Visual Basic .NET
Проблема,есть значение Х = 500(к примеру) котрое прибавляеся к лайблу. У меня получяается lable = 500 . Но когда я меня Х(600 к примеру)...


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

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

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