Помогите перевести даты из дробного формата.
Очевидно же, что у этой записи есть два сильно различающихся
наиболее удобных прочтения, неужели у тебя самого мозга нет?
---
"Унивеpситет pазвивает все способности, в том числе --- глупость."
это к чему вообще? какие еще два прочтения?
не отличалась от года к году, и неравномерными, когда примерно
каждый четвёртый год длиннее среднего.
---
...Я работаю антинаучным аферистом...
x - входное значение
DateFromYear(floor(x + (x-floor(x * (DateFromYear(ceiling(x - DateFromYear(floor(x
где floor - округление к -бесконечности, а ceiling - округление к +бесконечности
имхо, такое едва ли будут использовать, т.к. есть проблема, что именно брать за единицу, особенно если учесть, что за единицу надо брать самый длинный год из возможных.
неравномерными, когда примерно
каждый четвёртый год длиннее среднего
Скорее всего это имеется в виду. Тем более Земля вокруг оси неравномерно вращается, иногда вроде в новогоднюю ночь последней секундой года астрономы добавляют добавочную секунду. Так что последние сутки длиннее 24 часов на секунду.
Инфу по этому можно поискать. Эта дополнительная секунда как-то учитывается в постановке?
>> каждый четвёртый год длиннее среднего
> Скорее всего это имеется в виду.
Не очевидно и даже навряд ли, потому что нет смысла использовать
доли неравномерного года.
> Эта дополнительная секунда как-то учитывается в постановке?
Навряд ли это известно вопрошающему, раз вообще нет более или
менее однозначной постановки задачи.
---
...Я работаю антинаучным аферистом...
т.е. ты хочешь сказать, что где-то были люди, которые сидели и вбивали этот файл руками?
или были люди, которые разрабатывали стандарт на такое представление?
скорее всего этот файл получен с помощью экспорта из какой-нибудь компьютерной системы, простым использованием функции DateToYear(x соответственно года будут неравномерными.
>> использовать доли неравномерного года.
> скорее всего этот файл получен с помощью экспорта из
> какой-нибудь компьютерной системы, простым использованием
> функции DateToYear(x соответственно года будут
> неравномерными.
А если оно получалось из времени?
отсчёт = 1970 (год)
год = 365,xxxxxx * 24 * 60 * 60 * 1000 (мс)
дата = время/год + отсчёт
---
...Я работаю антинаучным аферистом...
Вроде слышал, что подобные программы есть у астрономов.
Год високосный, если делится нацело на 4 кроме тех, что делятся нацело на 100 (с целым числом столетий но не делятся нацело на 400. Посмотри в инете определение если что.
По целой части определяешь високосный ли год, дробная часть твоих исходных данных умножается на 365 или 366 високосный сравнивается с табличкой больше какого - узнаёшь месяц
строится заранее табличка 0-х дней месяца для невисокосного и високосного разные
Типа
0 Jan = 0
0 Feb = 31
0 Mar = 31+28) или для високосного 31+29
0 Apr = 31+28+31 или для високосного 31+29+31
и т.д.
Далее вычитая из одного 0-й день месяца узнаешь по целой части день
У множая дробную часть на 24 получишь целую часть часы, дробную опять умножаешь на 60 - продолжать?
Умный человек сначала прочитает "apropos date".
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
точную формулу я тебе привел, забивай в excel - да считай.
А если взять юниксовое время начала года, конца года, вычесть из одного другое, помножить на дробную часть - прокатит? =)
Оставить комментарий
Dmitriy-72
Есть таблица в которой дата и время представленны в виде десятичной дроби, где целая часть это год, а дробная часть года - все остальное.Пример: 1997,334759821 из этого нужно получить гггг мм дд чч мм сс.
Может кто нибудь знает как это сделать.