powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / точное количество месяцев
15 сообщений из 15, страница 1 из 1
точное количество месяцев
    #38659093
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вычислить полное количество месяцев между двумя датами?

в конкретном проекте надо это на JS сделать на крайний случай на PHP? о меня интересует и алгоритм(на будущее)

делаю так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var indate = new Date();
        indate.setDate(first_day);
        indate.setMonth(first_month);
        indate.setFullYear(first_year);

		var todate = new Date();
		todate.setDate(second_day);
		todate.setMonth(second_month);
		todate.setFullYear(second_year);
 
        var one_day = 1000 * 60 * 60 * 24;
        var time_different = Math.ceil((indate.getTime() - todate.getTime()) / (one_day));
		
		total_month = time_different / 30;



Но это не точно так как не все месяцы по 30 дней + есть високоснве года

что посоветуете?
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659126
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659130
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AreostarКак вычислить полное количество месяцев между двумя датами?
{skipped}
Но это не точно так как не все месяцы по 30 дней + есть високоснве года

что посоветуете?
Не усложняйте себе жизнь.
Код: javascript
1.
total_month = (todate.getYear() - indate.getYear()) * 12 + todate.getMonth() - indate.getMonth();
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659131
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659137
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаAreostarКак вычислить полное количество месяцев между двумя датами?
{skipped}
Но это не точно так как не все месяцы по 30 дней + есть високоснве года

что посоветуете?
Не усложняйте себе жизнь.
Код: javascript
1.
total_month = (todate.getYear() - indate.getYear()) * 12 + todate.getMonth() - indate.getMonth();



а если колличество не целое??
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659153
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar, это ты сам себе должет ответить. Интересует ли тебя ответ - "полтора месяца" или
"один месяц" в каждом конкретном случае.
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659199
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
semi-OFF> Areostar,
> а если колличество не целое??

А если полное количество месяцев не целое, - то это какие-то неправильные месяцы и надо генерировать исключение.
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659416
Фотография Виталий Гробштейн
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала советую забыть о программировании и постараться самому себе объяснить: а что такое полное к-во месяцев. Например, сколько месяцев между 15 февраля и 15 марта? А между 31 января и 28 февраля?
Такую проблему часто решают в банках, где проценты по вкладам причисляются ежемесячно. У них есть подробная инструкция что считать полным месяцем, и у каждого банка она, вообще говоря, своя.
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659582
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне надо высчитать сколько точно времяни прошло между двумя датами?

с днями и неделями пролблем нет. а вот с месяцами поблема. тоесть мне и дробная часть нужна
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659601
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostarс днями и неделями пролблем нет. а вот с месяцами поблема. тоесть мне и дробная часть нужна
С днями и неделями нет проблем нет, т.к. они все одинаковые (1 неделя = 7 дней, 1 день = 24 часа и т.д.). А месяцы и года разные. Как выше написали - нет единого правила расчета разницы дат в месяцах и годах. Придумай это правило, запиши в ТЗ и считай по нему. Например 1 месяц = 365,25 / 12 = 30,4375 дня.
При расчетах округляй до целого, например вниз. Пример: 50 дней = 1 месяц 20 дней или ~1.64 месяца, 100 дней = 3 месяца 9 дней или ~3.29 месяца.

Можешь другое правило придумать, которое учтет что месяц это с 1-го по 1-е следующего месяца.
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659606
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
точное количество месяцев
    #38659607
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТЗ неясно чел. Ты сначала ответь на вопрос Виталия и мы тебе нарисуем функцию.
Но ты должен сам сформулировать смысл твоего что ты хочешь получить на выходе.
...
Рейтинг: 0 / 0
точное количество месяцев
    #38660164
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AreostarМне надо высчитать сколько точно времяни прошло между двумя датами?

с днями и неделями пролблем нет. а вот с месяцами поблема. тоесть мне и дробная часть нужнаесли считать в секундах- тоже не будет проблем.
...
Рейтинг: 0 / 0
точное количество месяцев
    #38660197
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.если считать в секундах- тоже не будет проблем.Врывается 23:59:60 UTC
...
Рейтинг: 0 / 0
точное количество месяцев
    #38660324
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AreostarМне надо высчитать сколько точно времяни прошло между двумя датами?

с днями и неделями пролблем нет. а вот с месяцами поблема. тоесть мне и дробная часть нужна

1. считаем разницу в числе (дате). Если меньше нуля и оба числа не являются последними днями месяца, то от конечного месяца отнимаем единицу, а к полученному числу дней прибавляем продолжительность начального месяца. Если обе даты являются последними числами месяцев, то сбрасываем разницу дней в 0.
2. считаем разницу в номерах месяцев. Если меньше нуля, то отнимаем от конечного года 1 и прибавляем к числу месяцев 12.
3. считаем разницу в годах. Если меньше нуля - надо бы вернуть false или исключение бросить )).

в php всё сводится к функции date_diff
в js вроде подобного нету ничего, но вручную, как видите, сделать проще простого. (только timestamp надо сначала в дату перевести (год, месяц, число))
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / точное количество месяцев
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]