# 3.11 Tarih ve Zaman (Date and Time)

C++ dilinde tarih ve zaman ile çalışmak, programların zaman duyarlı verileri işlemesine olanak tanır. C++'da tarih ve saat ile çalışmak için genellikle `<chrono>`, `<ctime>` gibi kütüphaneler kullanılır. Bu kütüphaneler, zaman aralıklarını hesaplama, tarihleri ve saatleri yönetme gibi çeşitli işlevler sunar.

**C++’da Zamanı Kullanma**

C++'da tarih ve zaman ile çalışmak için en yaygın kullanılan kütüphaneler şunlardır:

* **`<ctime>` Kütüphanesi**: C tarzı zaman işlevlerini içerir.
* **`<chrono>` Kütüphanesi**: Modern C++ için zaman yönetimi sağlar.

**Temel Zaman Fonksiyonları**

**1. `<ctime>` Kütüphanesi ile Zaman Yönetimi:**

`<ctime>` kütüphanesi, tarih ve saatle ilgili işlevler ve tipler sağlar. Bu kütüphaneyi kullanarak zamanın alınması ve formatlanması gibi işlemleri gerçekleştirebilirsiniz.

```cpp
#include <iostream>
#include <ctime>

int main() {
    // Zamanı almak
    time_t simdikiZaman = time(0); // Geçerli zamanı al
    char* zamanString = ctime(&simdikiZaman); // Zamanı formatla

    std::cout << "Geçerli Zaman: " << zamanString << std::endl; // Zamanı yazdır

    return 0;
}
```

**2. `<chrono>` Kütüphanesi ile Zaman Yönetimi:**

`<chrono>` kütüphanesi, daha fazla esneklik ve modern bir API sağlar. Zaman aralıklarını ve süreleri kolayca yönetmenizi sağlar.

```cpp
#include <iostream>
#include <chrono>
#include <thread> // thread için

int main() {
    // Geçerli zamanı al
    auto baslangic = std::chrono::high_resolution_clock::now(); // Başlangıç zamanını al

    // Bir süre bekle
    std::this_thread::sleep_for(std::chrono::seconds(2)); // 2 saniye bekle

    // Bitiş zamanını al
    auto bitis = std::chrono::high_resolution_clock::now(); // Bitiş zamanını al

    // Süreyi hesapla
    std::chrono::duration<double> sure = bitis - baslangic;
    std::cout << "Geçen süre: " << sure.count() << " saniye" << std::endl; // Süreyi yazdır

    return 0;
}
```

**Önemli Fonksiyonlar ve Kavramlar**

* **`time_t`**: Zamanı temsil eden bir veri türüdür. 1 Ocak 1970'ten (Unix Epoch) geçen saniye sayısını tutar.
* **`struct tm`**: Yerel zaman bilgisini tutan bir yapı tipidir. Yıl, ay, gün, saat, dakika ve saniye bilgilerini içerir.
* **`std::chrono::duration`**: İki zaman noktası arasındaki süreyi temsil eder.
* **`std::chrono::high_resolution_clock`**: Yüksek çözünürlüklü zaman ölçümünü sağlar.

**Sonuç**

C++’da tarih ve zaman ile çalışmak, programların zamanla ilişkili işlemleri gerçekleştirmesine olanak tanır. Gelişmiş zaman yönetimi için `<chrono>` kütüphanesi önerilir. Tarih ve zaman işlevlerini etkili bir şekilde kullanmak, uygulamalarınızın daha fonksiyonel ve kullanıcı dostu olmasına yardımcı olur.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.yavuzlar.org/egitim/c-plus-plus/3.0-siniflar/3.11-tarih-ve-zaman-date-and-time.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
