Подсчет дней путем вычета дат c#

В программе есть таблица(dataGridView) с датами. Заполняется из Access

введите сюда описание изображения

Не могу реализовать чтобы каждый новый день происходило изменение КолВоДнейЛицензии, то есть ДатаОкончанияЛицензии вычесть настоящая дата(системная)


Ответы (2 шт):

Автор решения: MacAntony

Как примерно можно сделать:

DateTime date = new DateTime(2020, 5, 14, 17, 36, 0);  // 14.05.2020 17:36 Окончание 
Console.WriteLine(date.Subtract(DateTime.Now).Days); // Вывод

Тут можешь найти больше информации о работе со временем: https://metanit.com/sharp/tutorial/19.1.php

→ Ссылка
Автор решения: Bulson

Допустим есть таблица, создаем к ней запрос конструктор запроса

Тот же запрос текстом

SELECT Лицензии.Id
     , Лицензии.ДатаУстановкиПО
     , Лицензии.ДатаОкончанияЛицензии
     , DateDiff("d",Now(),[ДатаОкончанияЛицензии],2) AS Дней
FROM Лицензии;

Потом отображаем с помощью формы

пример

public partial class FormMain : Form
{
    private const string _connString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
        "Data Source=DatabaseDateTime.accdb;Persist Security Info=True";
    public FormMain()
    {
        InitializeComponent();

        this.Load += FormMain_Load;
    }

    private void FormMain_Load(object sender, EventArgs e)
    {
        var dataTable = GetLicenses();
        _dataGridView.DataSource = dataTable;
    }

    private DataTable GetLicenses()
    {
        var result = new DataTable();
        try
        {
            using (var cnn = new OleDbConnection(_connString))
            using (var cmd = cnn.CreateCommand())
            using (var adp = new OleDbDataAdapter(cmd))
            {
                cmd.CommandText = "SELECT * FROM ЗапросДней";
                adp.Fill(result);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

        return result;
    }
}
→ Ссылка