Последствия использования VB.NET метода DateAndTime.DateDiff с C#

Я создаю новое веб-приложение ASP.NET, основанное на устаревшем (Classic ASP). Люди, которые создавали этот код 4, 5 года назад, использовали множество функций VBScript, таких как DateDiff.

В настоящее время я работаю над симулятором, который делает много расчетов с датами. И я получаю досадную разницу между этими датами, потому что у меня нет простого способа получить разницу между месяцами в C#, как это было в VB 6.

Итак, я выбираю путь использования DateAndTime.DateDiff из пространства имен Microsoft.VisualBasic в моем веб-приложении ASP.NET.

Вы, ребята, знаете, есть ли какие-то последствия для этого? Я немного обеспокоен этим подходом.

Ура,

3 ответа

Решение

Единственное следствие - вы добавляете в сборку еще одну сборку и используете функциональность, о которой многие разработчики C# (другие люди, возможно, должны поддерживать ваш код) не знают. Но лично я не думаю, что с этим что-то не так. Документация MSDN Library, как правило, хорошая, и вы также можете добавить несколько комментариев, если хотите объяснить, почему вы ее используете.

Изменить: я также хочу отметить, что Microsoft.VisualBasic был реализован с нуля для.NET. Он не содержит древний код.

Одна возможность - использовать TimeSpan, как указано в Itay, но разделить на 30,4375 (среднее число дней в месяце), игнорируя дробные месяцы. Это достаточно близко для вещей, над которыми я сейчас работаю, но может быть недостаточно точным в зависимости от ваших потребностей. Например, разница между 1 февраля и 1 марта будет равна 0, что (на основании определения дня месяца в 30.4375) является правильным; однако, это может быть неправильно для ваших конкретных целей.

Это хорошо, что вы обеспокоены этим, потому что вы не должны использовать ни один из классифицированных в пространстве имен VisualBasic.

Библиотека.net предлагает гораздо лучшее решение под названием TimeSpan, используйте его следующим образом: (dt1 и dt2 DateTimes)

 TimeSpan ts = dt2 - dt1; //Or ts = dt1.Subtract(dt2)

Насколько я хотел бы помочь, я действительно думаю, что быстрый взгляд на интеллект расскажет вам все остальное (просто напишите это в Visual Studio и добавьте ts.)

РЕДАКТИРОВАТЬ для подсчета реального месяца: (y2 - y1) * 12 + m2 - m1что в этом такого?

Другие вопросы по тегам