2013-02-26 4 views
1

Я хочу, чтобы извлечь части из, например tm_sec или tm_min только, как простой Int (не массив или строку), как то, что и это возможно (если это), если что-то мне не нужно на 100% правильное время, поскольку я делаю это для своих собственных интересов и просто хочу узнать, как это сделать. Перед пытался с что-то делать сэкстракт часть time.h (МестноеВремя)

time_t rawtime; 
struct tm * timeinfo; 
char buffer [80]; 

time (&rawtime); 
timeinfo = localtime (&rawtime); 
strftime (buffer,80,"Now it's %H:%M.",timeinfo); 
puts (buffer); 

Но отсутствие опыта остановил меня, и теперь я понятия не имею, что делать (просто новичок в программировании), и конечно извините, если возник вопрос, как это, но я пробовал и не нашел его.

* Цель этого не отображать только те части, которые я хочу, но редактировать их

+0

Не забывайте, что год кодируется как «год - 1900» (так что вы должны добавьте 1900, чтобы получить фактический календарный год), и этот месяц закодирован с 0 для января до 11 декабря (так что вам нужно добавить его, чтобы получить нормальный месяц). И функция 'mktime()' может принимать измененную 'struct tm' и преобразовывать ее обратно в' time_t'. –

ответ

3

Просто доступ к членам структуры:

printf("The tm_seconds field is %d\n", timeinfo->tm_sec); 

Другими словами, если у вас есть указатель к значению типа struct tm, вы можете использовать оператор стрелки (->) для доступа к любому из участников. Член tm_sec имеет тип int, как и все остальные участники.

Вы можете скопировать значение:

int my_seconds = timeinfo->tm_sec; 

, а затем распечатать копию, тоже:

printf("my seconds are %d\n", my_seconds); 
+0

Большое спасибо, я бы дал вам репутацию, но у меня нет возможности сделать это :) – undefined

+0

@undefined: через несколько минут вы сможете принять ответ, который также даст вам некоторую репутацию. –

+0

Теперь я могу дать репутацию, а также отметить как полную, спасибо вам снова, вы сохранили мой энтузиазм – undefined

 Смежные вопросы

  • Нет связанных вопросов^_^