Định nghĩa hàm strftime() trong C

Hàm size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) định dạng thời gian được biểu diễn trong cấu trúc timeptr theo các qui tắc định dạng được định nghĩa trong format và được lưu trữ vào trong str.

Khai báo hàm strftime() trong C

Dưới đây là phần khai báo cho strftime() trong C:

size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)

Tham số

  • str -- Đây là con trỏ tới mảng đích, nơi mà chuỗi kết quả được sao chép.
  • maxsize -- Đây là số ký tự tối đa để được sao chép tới str.
  • format -- Đây là chuỗi chứa bất cứ tổ hợp nào của các ký tự thông thường và các format specifier đặc biệt. Những format specifier này được thay thế bởi hàm này bởi các giá trị tương ứng để biểu diễn thời gian được xác định trong tm. Các format specifier là:
Specifier Thay thế cho Ví dụ
%a Tên ngày trong tuần viết tắt Sun
%A Tên ngày trong tuần đầy đủ Sunday
%b Tên tháng viết tắt Mar
%B Tên tháng đầy đủ March
%c Biểu diễn date và time Sun Aug 19 02:56:02 2012
%d Ngày trong tháng (01-31) 19
%H Giờ, trong định dạng 24h (00-23) 14
%I Giờ, trong định dạng 12h (01-12) 05
%j Ngày trong năm (001-366) 231
%m Tháng, dưới dạng biểu diễn số (01-12) 08
%M Phút (00-59) 55
%p AM hoặc PM PM
%S Giây (00-61) 02
%U Số tuần, có ngày Chủ nhật đầu tiên là ngày đầu tiên của tuần (00-53) 33
%w Ngày trong tuần dưới dạng biểu diễn số (0-6) 4
%W Số tuần, có ngày thứ Hai đầu tiên là ngày đầu tiên của tuần (00-53) 34
%x Biểu diễn date 08/19/12
%X Biểu diễn time 02:50:06
%y Năm, biểu diễn dưới dạng hai số cuối (00-99) 01
%Y Năm 2012
%Z Tên Timezone CDT
%% Ký hiệu % %

timeptr -- là con trỏ trỏ tới giá trị time_t biểu diễn một calendar time, mà được chia nhỏ thành các thành phần với cấu trúc:

struct tm {
   int tm_sec;         /* biểu diễn giây, từ 0 tới 59 */
   int tm_min;         /* biểu diễn phút, từ 0 tới 59 */
   int tm_hour;        /* biểu diễn giờ, từ 0 tới 23 */
   int tm_mday;        /* biểu diễn ngày của tháng, từ 1 tới 31 */
   int tm_mon;         /* biểu diễn tháng, từ 0 tới 11 */
   int tm_year;        /* biểu diễn năm, bắt đầu từ 1900 */
   int tm_wday;        /* ngày trong tuần, từ 0 tới 6 */
   int tm_yday;        /* ngày trong năm, từ 0 tới 365 */
   int tm_isdst;       /* biểu diễn Daylight Saving Time */
};

Trả về giá trị

Nếu chuỗi kết quả có kích cỡ nhỏ hơn kích cỡ các ký tự (bao gồm ký tự null kết thúc), thì toàn bộ ký tự được sao chép tới str (không bao gồm ký tự null kết thúc) được trả về. Nếu không, hàm trả về 0.

Ví dụ minh họa cách sử dụng của strftime() trong C:

#include <stdio.h>
#include <time.h>

int main ()
{
   time_t rawtime;
   struct tm *info;
   char buffer[80];

   time( &rawtime );

   info = localtime( &rawtime );

   strftime(buffer,80,"%x - %I:%M%p", info);
   printf("Date & time da dinh dang theo ham strftime la: \n|%s|\n", buffer );

   return(0);
}

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Hàm strftime() trong thư viện C chuẩn-1

Xem thêm:

Thư viện C chuẩn:

Viết câu trả lời

Drop Images

0 Bình luận