|
32 / 32 / 1
Регистрация: 16.07.2009
Сообщений: 85
|
|
Задача получить разницу полных лет26.07.2009, 20:18. Показов 6221. Ответов 19
Метки нет (Все метки)
Надеюсь, что пригодится кому-нибудь.
И ещё вопросы, чтобы не плодить много тем ![]() Есть 2 datetimepicker'а. Задача получить разницу полных лет из этих двух datimepicker'а. Такая функция есть в Delphi - YearsBetween, есть ли что-нибудь подобное на C#? В TimeSpan максимум только кол-во дней есть? Или рассчитывать /365 ?
0
|
|
| 26.07.2009, 20:18 | |
|
Ответы с готовыми решениями:
19
Вычислить количество дней, полных месяцев, и полных лет, прошедших между датами Отображение полных лет человека..
|
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|||||||||||
| 27.07.2009, 12:05 | |||||||||||
|
Так подойдет?
вот переделал немного, теперь считает разницу именно полных лет
0
|
|||||||||||
|
32 / 32 / 1
Регистрация: 16.07.2009
Сообщений: 85
|
|||||||||||
| 27.07.2009, 14:42 [ТС] | |||||||||||
|
Огромный минус программы - её погрешность. Она на целый месяц. Простой пример:
15.07.2005 - дата рождения 27.07.2009 - текущая дата. По программе выходит, что будет 3 года, в
Далее, скажем 27.12.2005 - дата рождения 27.07.2009 - текущая дата По логике, должно быть 3 года, программа выдаёт - 4, потому что работаем только с Month и Year. Посидел - подумал и вот что придума ![]() Может проще делать отсчёт от дней? Тогда получим минимальную погрешность, итак
0
|
|||||||||||
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
| 27.07.2009, 17:19 | ||||||
0
|
||||||
|
32 / 32 / 1
Регистрация: 16.07.2009
Сообщений: 85
|
||||||
| 27.07.2009, 18:32 [ТС] | ||||||
|
Не работает в том случае, если год рождения високосный, будет постоянно врать на один год.
Добавлено через 19 минут 32 секунды Вполне разумно будет добавить проверку года для datimepicker1 перед выводом Что-нибудь
0
|
||||||
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
| 27.07.2009, 18:39 | ||||||
|
Правильно
, то я ошибся . А вот так?
1
|
||||||
|
32 / 32 / 1
Регистрация: 16.07.2009
Сообщений: 85
|
|
| 27.07.2009, 18:51 [ТС] | |
|
Теперь работает. Нужно куда-нибудь скинуть это, а то судя по гугл такой вопрос задавался ни раз, но вот решения простого не было.
0
|
|
|
308 / 161 / 11
Регистрация: 07.06.2009
Сообщений: 538
|
|
| 27.07.2009, 22:23 | |
|
вообще то у DateTime и TimeSpan определен оператор -
0
|
|
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
| 27.07.2009, 22:31 | ||||||
|
exe-dealer, а кто ж спорит, ним и пользовался. Твой вариант? Хотя признаю, эта версия с багом, а вот исправления(возможно есть еще другие баги)
0
|
||||||
|
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
|
||||||
| 28.07.2009, 01:36 | ||||||
|
А так не пройдет?
0
|
||||||
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|||||||
| 28.07.2009, 10:41 | |||||||
|
Feuer, компилировал?
0
|
|||||||
|
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
|
|
| 28.07.2009, 15:14 | |
|
Разумеется компилировал. Вполне нормально выглядит: это исключение возникает, если ты вычитаешь из более ранней даты более позднюю. Т.е. по сути получается отрицательное значение DateTime, а у него MinValue равно 01.01.0001 0:00:00.
0
|
|
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
| 28.07.2009, 15:30 | |
|
Feuer, изобрел второй способ
0
|
|
|
32 / 32 / 1
Регистрация: 16.07.2009
Сообщений: 85
|
|
| 28.07.2009, 15:45 [ТС] | |
|
Вообще-то это третий
0
|
|
|
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
|
||||||
| 28.07.2009, 16:13 | ||||||
|
Вот как я сделал наподобие в консоли:
PS: по этому вопросу консультировался в универе с преподом. Понял, что работать с датами в C# неблагодарное занятие.
0
|
||||||
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||
| 28.07.2009, 16:18 | ||
|
0
|
||
|
32 / 32 / 1
Регистрация: 16.07.2009
Сообщений: 85
|
|
| 28.07.2009, 16:32 [ТС] | |
|
M128K145, но погрешности можно свести к минимуму, тем более требуется получить кол-во полных лет, без учета сколько дней и месяцев, поэтому математические операции вполне себя оправдывают.
kirill29, в вашем случае погрешности будут довольно-таки приличными, т.к. берёте 31 день и 365 дней в году. *и всё-таки остановился на своём методе. Он простой и проще простого переделывается в проверку действительности паспорта (в 20 и 45 лет паспорт подлежит замене), добавкой одной переменной.
0
|
|
|
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
|
|||
| 28.07.2009, 16:38 | |||
|
0
|
|||
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
|
| 28.07.2009, 17:38 | |
|
Проверяйте, где ошибся
15 строчек кода (без объявлений переменных), кто меньше?
0
|
|
|
32 / 32 / 1
Регистрация: 16.07.2009
Сообщений: 85
|
||||||
| 28.07.2009, 18:15 [ТС] | ||||||
|
Ошибка в високосных годах, попробуйте ввести:
29.02.2012 - текущая дата 29.02.1984 - дата рождения Покажет 27, должно быть 28 *и стремление не к тому, чтобы это весило 5-7 строчек (можно и на асме написать), стремимся к тому, чтобы она работала правильно ![]() *и 15 строчек - чисто вашего кода или как? ![]() Добавлено через 13 минут 42 секунды В одну строчку, если удалить все пробелы, что ставить ReShaper ![]()
1
|
||||||
| 28.07.2009, 18:15 | |
|
Помогаю со студенческими работами здесь
20
Расчет количества полных лет в moment.js Авто подсчет - кол-во полных лет
Определить возраст человека(число полных лет) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|