ویژگی تصویر

تاریخ و زمان در زبان سی

  /  زبان برنامه نویسی C   /  تاریخ و زمان در C
بنر تبلیغاتی الف
زبان برنامه نویسی C

در این بخش به بررسی تاریخ و زمان در C می پردازیم، کار با تاریخ و زمان در برنامه‌نویسی یکی از موضوعات اساسی و پرکاربرد است که در بسیاری از پروژه‌ها، از مدیریت برنامه‌های روزانه گرفته تا محاسبه‌ی زمان‌های مختلف در نرم‌افزارهای مالی یا علمی، به آن نیاز داریم. زبان C با وجود سادگی و سطح پایین خود، ابزارها و کتابخانه‌های استانداردی را برای کار با تاریخ و زمان فراهم کرده است که به برنامه‌نویسان امکان مدیریت و محاسبات مرتبط با زمان را می‌دهد.

در زبان C، کار با زمان اغلب با استفاده از کتابخانه استاندارد <time.h> انجام می‌شود. این کتابخانه شامل توابع و ساختارهای داده‌ای است که برای نمایش، محاسبه، و تبدیل زمان استفاده می‌شوند. در این مقاله، قصد داریم به طور جامع و دقیق به این موضوع بپردازیم و به مفاهیمی مانند کار با زمان محلی، محاسبه تفاوت بین دو زمان، فرمت‌دهی تاریخ و زمان، و عملکرد توابع مرتبط در زبان C نگاهی بیندازیم. همچنین مثال‌هایی از کدنویسی برای درک بهتر این مفاهیم ارائه می‌دهیم.

معرفی ساختارها و توابع اصلی در <time.h>

کتابخانه <time.h> امکانات مختلفی را برای مدیریت زمان ارائه می‌کند. برخی از مهم‌ترین اجزای این کتابخانه عبارت‌اند از:

  • ساختار tm: این ساختار زمانی را به صورت تفکیک‌شده (ساعت، دقیقه، ثانیه و …) نگهداری می‌کند.
  • زمان استاندارد time_t: زمان به صورت یک عدد صحیح که تعداد ثانیه‌ها از آغاز دوران یونیکس (۱ ژانویه ۱۹۷۰) را نشان می‌دهد.
  • توابع مهم:
    • time(): زمان فعلی سیستم را به صورت عددی بازمی‌گرداند.
    • localtime(): تبدیل زمان به زمان محلی.
    • gmtime(): تبدیل زمان به زمان جهانی (UTC).
    • strftime(): قالب‌بندی زمان و تاریخ به رشته‌ای مشخص.

مثال کد برای نمایش زمان فعلی

تماشا در حالت تمام صفحه

توضیح مثال:
در این برنامه، ابتدا با استفاده از تابع time() زمان فعلی را به دست می‌آوریم. سپس با استفاده از localtime() این زمان به فرمت محلی تبدیل شده و ساعت، دقیقه و ثانیه به صورت جداگانه چاپ می‌شوند.

مدیریت و قالب‌بندی تاریخ و زمان

برای نمایش تاریخ و زمان به فرمت دلخواه، از تابع strftime() استفاده می‌شود. این تابع به شما امکان می‌دهد تا تاریخ و زمان را به صورت رشته‌ای با قالب مشخص تولید کنید.

پارامترهای مهم strftime:

  • %Y: سال به صورت چهار رقمی (مثلاً 2024)
  • %m: ماه (01 تا 12)
  • %d: روز ماه (01 تا 31)
  • %H: ساعت (00 تا 23)
  • %M: دقیقه
  • %S: ثانیه

مثال قالب‌بندی تاریخ

تماشا در حالت تمام صفحه

توضیح مثال:
در این برنامه، زمان فعلی به فرمت مشخصی شامل سال، ماه، روز، ساعت، دقیقه و ثانیه قالب‌بندی و چاپ می‌شود.

محاسبات زمانی: تفاوت بین دو زمان

برای محاسبه تفاوت بین دو زمان، از تابع difftime() استفاده می‌شود. این تابع تعداد ثانیه‌های بین دو زمان از نوع time_t را محاسبه می‌کند.

مثال محاسبه تفاوت زمانی

تماشا در حالت تمام صفحه

توضیح مثال:
این برنامه زمان شروع و پایان را ثبت کرده و تعداد ثانیه‌های بین آن دو را محاسبه و نمایش می‌دهد.

مدیریت زمان در زمان‌بندی برنامه‌ها

گاهی لازم است عملیاتی در یک بازه‌ی زمانی مشخص اجرا شود. در زبان C می‌توان از sleep() یا حلقه‌های زمانی استفاده کرد.

مثال تأخیر زمانی با sleep

تماشا در حالت تمام صفحه

توضیح مثال:
این برنامه با استفاده از تابع sleep() اجرای برنامه را به مدت ۳ ثانیه متوقف می‌کند.

نکات تکمیلی در کار با تاریخ و زمان

  1. زمان جهانی (UTC): برای کارهایی که نیاز به هماهنگی جهانی دارند، می‌توانید از تابع gmtime() استفاده کنید.
  2. تبدیل به فرمت سفارشی: می‌توانید تاریخ و زمان را به فرمت‌های خاص تبدیل کنید تا با نیازهای پروژه هماهنگ شود.
  3. دقت بالا در زمان‌بندی: در صورت نیاز به دقت میلی‌ثانیه‌ای، می‌توان از کتابخانه‌های خارجی مانند time.h پیشرفته یا کتابخانه‌های دیگر بهره برد.

منابع

  • C Programming Language Reference
  • کتابخانه استاندارد زبان C (man pages برای توابع مرتبط)
  • راهنمای ANSI C برای کار با تاریخ و زمان

آیا این مطلب برای شما مفید بود ؟

خیر
بله
بنر تبلیغاتی ج