Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 22.07.2013
Сообщений: 58
1

Найти разницу дней между датами

07.04.2015, 14:04. Показов 1993. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане! Начал изучать MS Visual Studio 2010 C++. Стоит такая задача. Надо найти разницу дней между датами. Создал форму и на форме использую два объекта dateTimePicker, один textbox и одну кнопку. В событии нажатия кнопки, написал код типа:
C++
1
2
3
4
5
6
7
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 char a, b, c;
                 c = System::Convert::ToChar(dateTimePicker2->Value);
                 b = Convert::ToChar(dateTimePicker1->Value);
                 a = c - b;
                 textBox1->Text = Convert::ToChar(a);
             }
Но блин, не работает, и ошибку дает об невозможном преобразовании. Правильно ли, я делаю? И вообще как можно решить эту задачку?

P.S. Сильно не ругайте! Я в этом деле новичок, и очень хочу научиться!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2015, 14:04
Ответы с готовыми решениями:

Вывести разницу дней между двумя датами
Всем привет. Ребят, прошу вашей помощи#include <iostream> using namespace std; class Date{...

Найти разницу между датами
Добрый день, подскажите, как найти разницу во времени между 2я датами tel / dat ...

Найти разницу между датами
Помогите понять что не так. не всегда верно выводит количество часов входные данные- количество...

Найти разницу между датами
Имеется 2 даты. Первая "дата изготовления", вторая "годен до". К примеру "20.05.15" и "26.05.15"....

23
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
07.04.2015, 14:09 2
Цитата Сообщение от COOL_DUDE Посмотреть сообщение
Сильно не ругайте! Я в этом деле новичок, и очень хочу научиться
Ругать не будем.Напишите что,по-вашему должна делать и делает каждая строчка.
0
0 / 0 / 0
Регистрация: 22.07.2013
Сообщений: 58
07.04.2015, 14:13  [ТС] 3
1. В начале я объявил переменные.
2. Потом значение дат конвертирую в char и передаю значение переменным.
3. Обычная математическая формула.
4. Вывод в textbox.
Всё. :-)
0
2 / 2 / 4
Регистрация: 27.01.2015
Сообщений: 48
07.04.2015, 14:16 4
C++
1
textBox1->Text = Convert::ToChar(a);
Мб ToString?
0
0 / 0 / 0
Регистрация: 22.07.2013
Сообщений: 58
07.04.2015, 14:18  [ТС] 5
Ну вот поэтому у вас спрашиваю!!! Если бы я знал, не создал бы тему. Вы просто подскажите, где я ошибся и как решить? :-(
0
0 / 0 / 0
Регистрация: 22.07.2013
Сообщений: 58
07.04.2015, 14:23  [ТС] 6
т.е. как? dateTimePicker2.Value - dateTimePicker1.Value и какому переменному присвоить?
0
2 / 2 / 4
Регистрация: 27.01.2015
Сообщений: 48
07.04.2015, 14:24 7
textBox1->Text = Convert::ToString(dateTimePicker2->Value - dateTimePicker1->Value) как-то так
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
07.04.2015, 14:29 8
Цитата Сообщение от COOL_DUDE Посмотреть сообщение
2. Потом значение дат конвертирую в char и передаю значение переменным.
1.Что такое char?
2.Что такое dateTimePicker1->Value?
0
2 / 2 / 4
Регистрация: 27.01.2015
Сообщений: 48
07.04.2015, 14:35 9
S_el, А что возвращается при запрос value у dateTimePicker?

Добавлено через 45 секунд
Я сейчас с телефона , посмотреть не могу=)
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.04.2015, 14:35 10
Цитата Сообщение от COOL_DUDE Посмотреть сообщение
какому переменному присвоить?
Результату. И не переменному, а переменной.
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
07.04.2015, 14:46 11
COOL_DUDE, по идее так:
C++
1
2
TimeSpan^ delta = dateTimePicker2->Value - dateTimePicker1->Value;
textBox1->Text = delta->TotalDays->ToString();
0
0 / 0 / 0
Регистрация: 22.07.2013
Сообщений: 58
07.04.2015, 14:58  [ТС] 12
Цитата Сообщение от OwenGlendower Посмотреть сообщение
C++
1
2
TimeSpan^ delta = dateTimePicker2->Value - dateTimePicker1->Value;
textBox1->Text = delta->TotalDays->ToString();
выдает ошибку:
error C2227: выражение слева от "->ToString" должно указывать на тип класса, структуры или объединения либо на универсальный тип

Добавлено через 3 минуты
Цитата Сообщение от Kojans Посмотреть сообщение
C++
1
textBox1->Text = Convert::ToString(dateTimePicker2->Value - dateTimePicker1->Value)
как-то так
Это сработало, но после количество дней выходить время и код (номер)
Значение dateTimePicker2 07/04/15
Значение dateTimePicker1 07/04/15
Результат на textbox1 -00:00:00.0040000
поменял даты, всё равно выходить. :-)
0
2 / 2 / 4
Регистрация: 27.01.2015
Сообщений: 48
07.04.2015, 15:00 13
Convert::ToString(delta->TotalDays) попробуй так
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
07.04.2015, 15:00 14
Попробуйте так:

C++
1
2
TimeSpan^ delta = dateTimePicker2->Value - dateTimePicker1->Value;
textBox1->Text = delta->TotalDays.ToString();
0
2 / 2 / 4
Регистрация: 27.01.2015
Сообщений: 48
07.04.2015, 15:02 15
C++
1
2
textBox1->Text = Convert::ToString(dateTimePicker2->Value - dateTimePicker1->Value)
textBox1->Text = Convert::ToString(textBox1->Text->Split('.')[0])
пробуй так
0
0 / 0 / 0
Регистрация: 22.07.2013
Сообщений: 58
07.04.2015, 15:08  [ТС] 16
Цитата Сообщение от S_el Посмотреть сообщение
C++
1
2
TimeSpan^ delta = dateTimePicker2->Value - dateTimePicker1->Value;
textBox1->Text = delta->TotalDays.ToString()
;
Теперь значение выходит
6.00001070465046
с 1/04/15 по 07/04/15
а если с 07/04/15 по 07/04/15 то
1.0704650462963E-05

Добавлено через 1 минуту
[quote="Kojans;7447956"]
C++
1
2
textBox1->Text = Convert::ToString(dateTimePicker2->Value - dateTimePicker1->Value)
textBox1->Text = Convert::ToString(Textbox1->Text>Split(' ')[0])[
/quote]
Ошибку выдала:
1. error C2227: выражение слева от "->Text" должно указывать на тип класса, структуры или объединения либо на универсальный тип
2. error C3861: Split: идентификатор не найден
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
07.04.2015, 15:08 17
Цитата Сообщение от COOL_DUDE Посмотреть сообщение
Теперь значение выходит
Все правильно.Что вас не устраивает?Можете округлить до целого.
0
0 / 0 / 0
Регистрация: 22.07.2013
Сообщений: 58
07.04.2015, 15:09  [ТС] 18
Цитата Сообщение от S_el Посмотреть сообщение
Все правильно.Что вас не устраивает?Можете округлить до целого.
Нет, меня не устраивает значение после 6 .00001070465046. Как убрать? :-)
0
2 / 2 / 4
Регистрация: 27.01.2015
Сообщений: 48
07.04.2015, 15:10 19
Лучший ответ Сообщение было отмечено COOL_DUDE как решение

Решение

Для сплита нужна библиотека.

Добавлено через 30 секунд
textBox1->Text = Convert::ToString(textBox1->Text->Split('.')[0]) добавь и уберется после точки.
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
07.04.2015, 15:13 20
Цитата Сообщение от COOL_DUDE Посмотреть сообщение
Нет, меня не устраивает значение после 6 .00001070465046. Как убрать?
Ваши предложения?
0
07.04.2015, 15:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2015, 15:13
Помогаю со студенческими работами здесь

Найти разницу между датами со временем
Здравствуйте! Я считываю поле из бд Access формата дата и время за определенный промежуток времени....

Найти разницу между датами в годах
Задание Написать программу с участием типа DateTime, TimeSpan. Ввести 2 даты Найти разницу между...

Не могу найти правильную разницу между датами
Почему то показывает все время неправильные цифры... посылаю методу стринг с датой и временем и...

Найти количество дней между 2 датами
Хочу поделиться, я новичок в Паскале так что использал простые операторы (эа тсключением function,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru