Как получить месяц из даты Excel в C#

К примеру у меня в экселе в ячейке есть дата "26.01.2023", мне нужно перенести только месяц, то есть "01" и занести его в переменную. Как это сделать?


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

Автор решения: Алексей Р

Вариант с DateTime.ParseExact()

using System;
using System.Globalization;

class Test {
  static void Main() {
    string data = "26.01.2023", format = "dd.mm.yyyy";
    Console.WriteLine(DateTime.ParseExact(data,format,CultureInfo.InvariantCulture).Month);
  }
}

Поскольку дата в ячейке Excel - это число с двойной точностью (Double), то посмотрите ещё в сторону DateTime.FromOADate. Извлекать значение из ячейки Excel в этом случае нужно с помощью .Value, а не .Text.
введите сюда описание изображения

using System;

class Test {
  static void Main() {
    double data = 44952; // в Excel == 26.01.2023
    Console.WriteLine(DateTime.FromOADate(data).Month);
  }
}

Результат:

1
→ Ссылка