|
|
|
Алгоритм вычисления Даты
|
|||
|---|---|---|---|
|
#18+
Задача: надо из числа получить дату. Формула: 2013.01 = 2013*12+1 = 24157 То есть как из Даты получить число я знаю, а вот наоборот: из числа дату ??? Пример: Приходит число "24157" Надо получить дату вида "01.2013" Заранее спасибо за любую подсказку! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 13:07 |
|
||
|
Алгоритм вычисления Даты
|
|||
|---|---|---|---|
|
#18+
24157 / 12 = 2013 (округляем) лет от рожд. Христова. 24157 остаток от деления на 12 даст число месяцев. И с богом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 13:55 |
|
||
|
Алгоритм вычисления Даты
|
|||
|---|---|---|---|
|
#18+
Или так: День = MOD(24157, 12); Год = (Число - День)/12 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 14:33 |
|
||
|
Алгоритм вычисления Даты
|
|||
|---|---|---|---|
|
#18+
potkinИли так: День = MOD(24157, 12); Год = (Число - День)/12 Для того чтобы посчитать целую часть от результата деления не нужно привлекать сторонние операции типа вычисления остатка. Это избыток. А вот для расчёта остатка - да! Используется деление и умножение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 14:37 |
|
||
|
Алгоритм вычисления Даты
|
|||
|---|---|---|---|
|
#18+
В принципе Вы правы. Но, это только одна задачка, там еще есть несколько, которые с MOD легче решаются ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 15:01 |
|
||
|
Алгоритм вычисления Даты
|
|||
|---|---|---|---|
|
#18+
Для твоей задачи - пофиг. Можешь находить целое от деления разными извращёнными способами. Но самый простой способ всегда есть в твоём API который ты ленишся почитать. P.S. Кстати операция MOD является краеугольным камнем криптографии и криптоанализа. Именно ее принципиальная несократимость является естественным тормозом на пути любых атак или криптоанализов при поиске ключей к шифрам. Не забывай это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 15:15 |
|
||
|
Алгоритм вычисления Даты
|
|||
|---|---|---|---|
|
#18+
potkin Задача: надо из числа получить дату. Формула: 2013.01 = 2013*12+1 = 24157 То есть как из Даты получить число я знаю, а вот наоборот: из числа дату ??? Пример: Приходит число "24157" Надо получить дату вида "01.2013" Заранее спасибо за любую подсказку! Тебе только месяцчы интересны или даты? Поправку на высокосные года учитываешь? Тогда все формулы - Бред. Учи матчасть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 17:08 |
|
||
|
Алгоритм вычисления Даты
|
|||
|---|---|---|---|
|
#18+
Его формула суть - маппинг YYYY.MM в Количество_Месяцев . При такой постановке - не бред. Нормальная себе формула. Другое дело что у нее нет перспектив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 18:45 |
|
||
|
Алгоритм вычисления Даты
|
|||
|---|---|---|---|
|
#18+
C #include <time.h> struct tm *localtime(const time_t *timep); time_t mktime(struct tm *tm); struct tm { int tm_sec; /* seconds */ int tm_min; /* minutes */ int tm_hour; /* hours */ int tm_mday; /* day of the month */ int tm_mon; /* month */ int tm_year; /* year */ int tm_wday; /* day of the week */ int tm_yday; /* day in the year */ int tm_isdst; /* daylight saving time */ }; The mktime() function modifies the fields of the tm structure as fol‐ lows: tm_wday and tm_yday are set to values determined from the con‐ tents of the other fields; if structure members are outside their valid interval, they will be normalized (so that, for example, 40 October is changed into 9 November); tm_isdst is set (regardless of its initial value) to a positive value or to 0, respectively, to indicate whether DST is or is not in effect at the specified time. Calling mktime() also sets the external variable tzname with information about the cur‐ rent timezone. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2013, 01:48 |
|
||
|
Алгоритм вычисления Даты
|
|||
|---|---|---|---|
|
#18+
maytonЕго формула суть - маппинг YYYY.MM в Количество_Месяцев . При такой постановке - не бред. Нормальная себе формула. Другое дело что у нее нет перспектив. Но количество месяцев в таком маппинге не является датой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2013, 10:32 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38111257&tid=1341961]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 530ms |

| 0 / 0 |
