Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
 Аватар для GreyWolf
6 / 6 / 1
Регистрация: 27.11.2009
Сообщений: 41

Как преобразовать строку в дату?

28.04.2010, 08:57. Показов 5255. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
К примеру есть
C++
1
Edit1->Text = "2010-04-28"
Подскажите, как сделать чтобы год, месяц и день раскидать по переменным int y1, m1, d1;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.04.2010, 08:57
Ответы с готовыми решениями:

Преобразовать дату в строку
Ребят нужно числовую дату преоразовать в строку. Например 10.08.2015 в 10.августа.2015 C++ Builder

где можно преобразовать дату(строку), которая приходит из input, в дату(число), чтобы дату задать в setFullYear
const FirstPage = (props) => { const = useState(''); const = useState(''); const = useState(''); const...

Как преобразовать дату в строку?
procedure TForm1.linkgenClick(Sender: TObject); var tviLink:string; mydate:TDate; year,month,day:word; begin ...

6
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
28.04.2010, 09:10
К примеру, если у тебя есть такая запись, то тебе надо делать через SubString(),а потом StrToInt()
1
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
28.04.2010, 09:11
самый просто метод - конвертируете дату из строки в переменную TDateTime и потом используете метод:
C++
1
DecodeDate(unsigned short* year, unsigned short* month, unsigned short* day)
еще как вариант: по индексам разбить строку на нужные части и перевести их в int (но главное не забыть, что в AnsiString нумерация идет c 1)
2
 Аватар для GreyWolf
6 / 6 / 1
Регистрация: 27.11.2009
Сообщений: 41
28.04.2010, 11:24  [ТС]
с SubString() так и не разобрался..
разбил по индексам, работает вроде как..
C++
1
2
3
4
5
6
7
8
    EndDateIYear = StrToInt(EndDate[1])*1000 + StrToInt(EndDate[2])*100 + StrToInt(EndDate[3])*10 + StrToInt(EndDate[4]);
    Edit2->Text = IntToStr(EndDateIYear);
 
    EndDateIMonth = StrToInt(EndDate[6])*10 + StrToInt(EndDate[7]);
    Edit3->Text = IntToStr(EndDateIMonth);
 
    EndDateIDay = StrToInt(EndDate[9])*10 + StrToInt(EndDate[10]);
    Edit4->Text = IntToStr(EndDateIDay);
может кому понадобится =)
и если есть другие предложения покомпактнее посоветуйте
2
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
28.04.2010, 11:29
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
  EndDateIYear = IntToStr(EndDate.SubString(1, 4));
      Edit2->Text = IntToStr(EndDateIYear);
      EndDateIMonth = IntToStr(EndDate.SubString(6, 2));
      Edit3->Text = IntToStr(EndDateIMonth);
 
        EndDateIDay = IntToStr(EndDate.SubString(9, 2));
        Edit4->Text = IntToStr(EndDateIDay);
а лучше так:
C++
1
2
3
4
5
6
7
8
9
  DateSeparator = '-';
  ShortDateFormat = "YYYY-MM-DD";
  AnsiString ttt = "2010-02-24";
  TDateTime date(ttt);
  unsigned short y = 0, m = 0, d = 0;
  try{
    DecodeDate(ttt, y, m, d);
  }catch(...){}
  ShowMessage(IntToStr(y) + " " + IntToStr(m) + " " + IntToStr(d));
4
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
28.04.2010, 11:39
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
Edit2->Text = Edit1->Text.SubString(1,4);
Edit3->Text = Edit1->Text.SubString(6,2);
Edit4->Text = Edit1->Text.SubString(9,2);
Добавлено через 6 минут
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
C++
1
2
3
4
5
6
7
  EndDateIYear = EndDate.SubString(1, 4);
      Edit2->Text = IntToStr(EndDateIYear);
      EndDateIMonth = EndDate.SubString(6, 2);
      Edit3->Text = IntToStr(EndDateIMonth);
 
        EndDateIDay = EndDate.SubString(9, 2);
        Edit4->Text = IntToStr(EndDateIDay);
Как я предполагаю: EndDateIYear это переменая инт;
тогда EndDateIYear = EndDate.SubString(1, 4); без .ToInt() не прокатит.
3
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
28.04.2010, 11:50
QenT, ну да, мой косяк... без конвертации там нельзя...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2010, 11:50
Помогаю со студенческими работами здесь

Как преобразовать строку в дату
Здравствуйте! Помогите пожалуйста, как преобразовать строку в дату на Visual C++

Как считать и преобразовать дату в строку
Здравствуйте. У меня на форме есть две даты Как в коде прописать установление этих параметров?

Как программно преобразовать дату в строку?
Помагите пожалуста как дату перевести в строку и обратно в 1 с ВыброннаяДата = ЭтотОбъект.Дата; Минуты =...

Как дату и время преобразовать в строку?
?

Как преобразовать строку с датой формата UTC в дату вида 17.07.2015 17:04:43?
У меня есть такая строка с датой: 2018-10-22T11:41:40 UTC Как ее преобразовать в такую строку: 22.10.2018 17:41:30? Добавлено через...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru