Розрахунки між датами (DateTimePicker - DateDiff)

Сьогодні я хочу показати, як проводити розрахунки між датами комфортно в Visual Basic. NET за допомогою функції DateDiff.

Потрібна форма, кнопки, деякі мітки і DateTimePicker управління, як показано на малюнку нижче:

і в разі натискання кнопки буде наступний код:

 txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) і «років»
 txtMeses.Text = DateDiff (DateInterval.Month, DateTimePicker1.Value, Now.Date) & "місяців"
 txtSemanas.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) / 7 та "тижня"
 txtDias.Text = DateDiff (DateInterval.Day, DateTimePicker1.Value, Now.Date) & "днів"

запустити додаток, ми вибрали минуле дату і натисніть на кнопку Calculate. Результат буде схожий на цей образ:

Це дуже простий приклад, досить поглянути на код і скріншоти, і я впевнений, що у вас не буде сумнівів, але якщо ви повинні були їсти, просто залиште свій коментар.

Сподіваюся, що це допомагає.

18 Відповідей на "розрахунки між датами (DateTimePicker - DateDiff)"

  1. Bitacoras.com каже:

    Інформація Bitacoras.com ...

    Ставка в Bitacoras.com: Сьогодні я хочу показати, як проводити розрахунки між датами в Visual Basic Net за допомогою функції DateDiff .. Потрібна форма, кнопки, деякі лейбл? S DateTimePicker управління, як показано в наступних ...

  2. Петро каже:

    Здравствуйте, перш за все, дякую вам.

    У мене є інтерес.

    Сьогодні 29 квітня 2009
    Я народився у вересні 1980 року

    по
    txtAños.Text = DateDiff (DateInterval.Year, DateTimePicker1.Value, Now.Date) і «років»

    тепер у мене є 29 років

    Але це не так, у мене 28 день народження нещодавно у вересні

    і модифікувати код

    ще раз спасибі

    • Єлисей сказав:

      Петро, ​​я висловлюю вам трохи інформації:

      Якщо інтервал встановлений на DateInterval.Year, що повертається значення просто розраховується по року частини двома зазначеними датами. Аналогічним чином, повертається значення для DateInterval.Month просто обчислюється із сторін рік і місяць аргументів.

      Наприклад, при порівнянні з 31 грудня на 1 січня наступного року, DateDiff повертає 1 для DateInterval.Year або DateInterval.Month, але рівно стільки пройшло за один день.

      В таких випадках я рекомендую, наприклад, завжди використовує діапазон і розділити на 365 DateInterval.Day і це буде мати більш точну цифру: 28,65 років (наприклад) і якщо ви просто хочете цього року ви можете використовувати Int () функцію, яка буде повертати тільки частина номера.

  3. Алекс говорить:

    Хороший приклад! Дякуємо за інформацію

  4. Джиммі говорить:

    Гей, добрі люди після служив мені правду до сих пір допомагає камері, як я grax.

  5. Хосе Ігнасіо каже:

    Ваш пост дуже хороший друг, як ви, щоб встановити DateTimePicker форматі DD / MM / YYYY я отримую від якості М.І. (четверга, 12 травня 1999) і справді не знаю, як

    • Єлисей сказав:

      Привіт Йосипа:

      Ви просто повинні змінити контроль Formatdel власності, а також:

      DateTimePicker1.Format = DateTimePickerFormat.Short

      Щастя

  6. Джон Ф. каже:

    Консультації, мабуть, занадто легко, але я можу змінити спосіб відображення дати в datetiempicker для мене виглядає: П'ятниця, 27 Листопад 2009, мені потрібно просто: 27.11.2009.

    що було б, спасибі.

  7. Джон Ф. каже:

    На жаль, коментар не бачив, який відповідає на моє запитання, дякую.

  8. mcinpapr каже:

    Добрий день ... У мене є проблема ... Я за допомогою двох DateTimePicker в vb.net 2005 року, і при виборі дати в другій DateTimePicker я повинен взяти на себе різницю між двома датами ... функція запускається на "ValueChanged" другий ... Якщо ви запустите її, але я завжди віднімається один день, ніж я повинен дати ... наприклад ... Якщо я залишу сьогоднішню дату першої DateTimePicker (21.12.2009) та вибрали в другу на наступний день (22/12 / 2009) повертає мене значення 0 ... якщо ви виберете його 23 повертає мені значення 1. Функція використовується наступним чином:

    TextBox1.Text = CStr (DateDiff (DateInterval.Day, DTP_ShipDate.Value, DTP_ETA.Value))

    Кожен знає, що може бути те, що відбувається, будь ласка?

  9. Lilimarlet каже:

    Доброго дня, як ся маєте?
    У мене є запит них, як я можу отримати тільки в день FEHA, подивіться у мене є текстове поле, де я показую FEHA "01.01.2009", і мені потрібно за один день.

    У мене є ця

    тьмяний день, як ціле
    день = день (tfecha.text)

    Я не приносить нічого, але покласти

    Dim рік As Integer
    рік рік = (tfecha.text)

    Я показує рік тут, але мені потрібно в день

  10. Карлос ч каже:

    Пробачте мене, як я роблю dataTimerPicker я debuelva рік-місяць-день кістка "YYYY / MM / DD", щоб вибрати дату, мені потрібно для запиту в Mysql і дати в такому форматі дозволяє їм ("YYYY / MM / DD" ) .....

    Якби я міг бути agradesco керівництво ... Спасибо заранее.

  11. Дженніфер говорить:

    Велике спасибі за інформацію. Це було великою підмогою.

  12. Hanner Ов'єдо каже:

    Ефективне управління не дуже добре VB, і я працюю цю подію, але я отримую помилку 424 потрапив в мало я зробив, я сподіваюся, що ваша допомога

    Range ("I10") = DateDiff (DateInterval.Month, TextBox18.Value, Now.Date)

    Спасибо.

  13. DjMiki каже:

    Добре Єлисей друг, спасибі за ваші функції служив мені, але у мене є деталь, в результаті дає мені DateDiff є негативним, наслідувати приклад, ви даєте, але однаково, постарайтеся передати його у вигляді рядка, INT, CInt, CStr, і нічого допомога, будь ласка.

  14. DjMiki каже:

    Ну вибачте Єлисей проблеми, але хороший і вирішити мою проблему, але я думаю, що ви розмістили замовлення параметри навпаки, я маю на увазі дату 1 і дата 2, а потім повинні бути Date1 Date2.
    Ну виправлена, тепер з усіх сил при порівнянні цього результату.

  15. Елькін V говориться:

    Ей, друг Спасибо Дуже корисне
    Це дуже легко LOL

    Залишки пізніше, намагаючись знайти щось

    Як я кинув велику користь!

Коментувати