Формула для преобразования даты в число - программирование
Подтвердить что ты не робот

Формула для преобразования даты в число

Я хотел бы знать формулу для конвертации даты с номером от 27.10.2013 по номер 41573, как это сделано в excel. Например, как 10/26/2013 преобразуется в 41573.

4b9b3361

Ответ 1

Если вы измените формат ячеек на General, тогда это покажет значение даты ячейки как за кулисами. Excel сохраняет дату как количество дней с 01.01.1900

Screenprint 1

Screenprint 2

Если ваша дата является текстом, и вам нужно ее преобразовать, то DATEVALUE сделает следующее:

Datevalue function

Ответ 2

Номер Excel для современной даты наиболее легко рассчитывается как количество дней с 12/30/1899 по григорианскому календарю.

Excel рассматривает мифическую дату 01/00/1900 (т.е. 12/31/1899) как соответствующую 0 и неправильно рассматривает год 1900 как високосный год. Таким образом, для дат до 01.03.1900 номер Excel фактически является числом дней после 12/31/1899.

Однако Excel не будет форматировать любое число ниже 0 (-1 дает вам ##########), и поэтому это имеет значение только для "01/00/1900" до 02/28/1900, что делает проще просто использовать дату 12/30/1899 в качестве базы.

Полная функция в DB2 SQL, учитывающая ошибку видового года 1900:

SELECT
   DAYS(INPUT_DATE)                 
   - DAYS(DATE('1899-12-30'))
   - CASE                       
        WHEN INPUT_DATE < DATE('1900-03-01')  
           THEN 1               
           ELSE 0               
     END