У меня возникла проблема с получением месяца между двумя датами. Вот пример:VBScript DateDiff month
DateDiff("m","2014-10-17","2014-10-30")
Приведенный выше код возвращает 0 месяцев, так как он меньше, чем через месяц. Но,
DateDiff("m","2014-10-17","2014-11-01")
возвращает 1, которого не должно быть, так как он еще 15 дней.
Моя проблема заключается в том, что я хочу, чтобы эти две даты уже превышали месяц, но кажется, что он вычисляет 1 месяц только после изменения месячной части даты.
Это именно то, чего я хотел избежать. Предполагается, что эти встроенные функции упрощают работу, но, похоже, они не идеальны. И тогда есть проблема с високосными годами. Надеюсь, кто-то может дать исходный код для этого. – kenjohnny09
'DateDiff' не имеет вашей функции IDEAL. Есть два способа решить вашу проблему: 1) попросите разработчиков VBScript улучшить «DataDiff», как вы хотите, 2) найти способ обхода ограниченной функции «DataDiff». StackOverflow не является разработчиком VBScript, поэтому вы не должны запрашивать решение 1) пути. Удачи! –
@ kenjohnny09 Если вы не хотели, чтобы это было ответом, было бы неплохо упомянуть об этом. Вы должны объединить оба. Если разница в месяце равна единице, то проверьте дни, чтобы быть уверенными. В вашем примере 11-10 равно тому, который, скорее всего, является ядром ответа. В качестве дополнительной проверки вы можете сравнить дни в месяце, чтобы получить точную математику. – Matt