Подсчет дней путем вычета дат 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;
}
}

