Форум: Форум C++Разное
Новые темы: 00
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: работа с датой в стандартной библиотеке
 
 автор: Aeriss   (27.02.2007 в 20:50)   письмо автору
 
 

Есть ли в стандартной библиотеке С++ удобный тип или класс для работы с датами?

  Ответить  
 
 автор: cheops   (28.02.2007 в 00:51)   письмо автору
 
   для: Aeriss   (27.02.2007 в 20:50)
 

Нет.

PS Под удобным что имеется в виду?

  Ответить  
 
 автор: Aeriss   (28.02.2007 в 21:14)   письмо автору
 
   для: cheops   (28.02.2007 в 00:51)
 

Имеется в виду, что не охота руками писать вычисление дня недели по дате, проверку допустимости даты и т.д. Но почему же нет? А struct tm?

  Ответить  
 
 автор: cheops   (28.02.2007 в 22:36)   письмо автору
 
   для: Aeriss   (28.02.2007 в 21:14)
 

tm - часть стандартной библиотеки C.

  Ответить  
 
 автор: Aeriss   (01.03.2007 в 01:24)   письмо автору
 
   для: cheops   (28.02.2007 в 22:36)
 

А не подскажете, как мне, используя tm, по дате получить номер дня недели?

  Ответить  
 
 автор: cheops   (01.03.2007 в 03:01)   письмо автору
 
   для: Aeriss   (01.03.2007 в 01:24)
 

Обращайтесь к полю tm_wday структуры tm
tm.tm_wday

Правда следует иметь в виду, что на Западе неделя начинается с воскресенья, а не с понедельника как у нас. А нумерация дней недели в поле tm_wday начинается с 0 (воскресенье) и заканчивается 6 (суббота).

  Ответить  
 
 автор: Aeriss   (01.03.2007 в 10:33)   письмо автору
 
   для: cheops   (01.03.2007 в 03:01)
 

Это понятно, но если вручную записать в tm день, месяц и год, то поле tm_wday остается неинициализированным. Видимо, нужна конвертирующая функция. Есть функция strptime, но компилятор Visual Studio ее почему-то не находит, хотя <time.h> подключен

  Ответить  
 
 автор: cheops   (01.03.2007 в 14:19)   письмо автору
 
   для: Aeriss   (01.03.2007 в 10:33)
 

Лучше использовать UNIXSTAMP-формат - количество секунд, прошедших с полуночи 1 января 1970 года - это естественный программистский стандарт хранения времени, так как очень удобен впрограммировании. Для получения этого значения, с использованием месяца, года и т.п. используется функция mktime().

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования