Unix Zaman Damgası Tarih Dönüştürücü: 12/24 Saat Formatı Desteği
Unix zaman damgalarını insan tarafından okunabilir tarihlere ve saatlere dönüştürün. Bu basit, kullanıcı dostu dönüştürücü aracı ile 12 saat ve 24 saat zaman formatları arasında seçim yapın.
Unix Zaman Damgası Dönüştürücü
Dönüştürülmüş Tarih & Saat
Dokümantasyon
Unix Zaman Damgası Dönüştürücü
Giriş
Unix zaman damgası (POSIX zamanı veya Epoch zamanı olarak da bilinir), bir zaman noktasını tanımlamak için bir sistemdir. 1 Ocak 1970'ten (orta gece UTC/GMT) itibaren geçen saniye sayısını ifade eder; artık artık sıçrama saniyeleri sayılmaz. Unix zaman damgaları, belirli bir zaman anını dil bağımsız bir temsil ile sağladıkları için bilgisayar sistemlerinde ve programlama dillerinde yaygın olarak kullanılmaktadır.
Bu dönüştürücü, bir Unix zaman damgasını insan tarafından okunabilir bir tarih ve saat formatına dönüştürmenizi sağlar. Farklı bölgesel ve kişisel tercihlere uyum sağlamak için hem 12 saatlik (AM/PM) hem de 24 saatlik zaman formatlarını destekler.
Unix Zaman Damgalarının Çalışma Şekli
Unix zaman damgaları, Unix Epoch'undan (1 Ocak 1970, 00:00:00 UTC) itibaren geçen saniye sayısı olarak hesaplanır. Bu, zaman farklarını hesaplamak ve tarihleri kompakt bir formatta saklamak için özellikle yararlıdır.
Bir Unix zaman damgasından takvim tarihine dönüşüm matematiksel olarak birkaç adım içerir:
- Unix Epoch'u (1 Ocak 1970, 00:00:00 UTC) ile başlayın
- Zaman damgasındaki saniye sayısını ekleyin
- Sıçrama yılları, değişken ay uzunlukları ve diğer takvim karmaşıklıklarını hesaba katın
- Gerekirse saat dilimi ayarlamalarını uygulayın
Örneğin, 1609459200
Unix zaman damgası, 1 Ocak 2021 Cuma, 00:00:00 UTC'yi temsil eder.
Dönüşüm formülü şu şekilde ifade edilebilir:
Çoğu programlama dili ve işletim sistemi, bu dönüşümü gerçekleştirmek için yerleşik işlevler sağlar ve karmaşık takvim hesaplamalarını soyutlar.
Zaman Formatı Seçenekleri
Bu dönüştürücü, iki zaman formatı seçeneği sunar:
-
24 saat formatı (bazen "askeri zaman" olarak adlandırılır): Saatler 0'dan 23'e kadar değişir ve AM/PM tanımı yoktur. Örneğin, 15:00, 3:00 PM olarak temsil edilir.
-
12 saat formatı: Saatler 1'den 12'ye kadar değişir, gece yarısından öğlene kadar olan zamanlar için AM (ante meridiem) ve öğleden sonra olan zamanlar için PM (post meridiem) kullanılır. Örneğin, 24 saat formatındaki 15:00, 12 saat formatında 3:00 PM olarak temsil edilir.
Bu formatlar arasındaki seçim büyük ölçüde bölgesel gelenek ve kişisel tercihlere bağlıdır:
- 24 saat formatı, Avrupa'nın çoğunda, Latin Amerika'da ve Asya'da, ayrıca dünya genelinde bilimsel, askeri ve tıbbi bağlamlarda yaygın olarak kullanılmaktadır.
- 12 saat formatı, Amerika Birleşik Devletleri, Kanada, Avustralya ve bazı diğer İngilizce konuşan ülkelerde günlük kullanımda yaygındır.
Kenar Durumları ve Sınırlamalar
Unix zaman damgaları ile çalışırken, birkaç kenar durumu ve sınırlamanın farkında olmak önemlidir:
-
Negatif zaman damgaları: Bu, Unix Epoch'tan (1 Ocak 1970) önceki tarihleri temsil eder. Matematiksel olarak geçerli olsalar da, bazı sistemler negatif zaman damgalarını doğru bir şekilde işleyemeyebilir.
-
2038 Yılı Problemi: Unix zaman damgaları genellikle 32 bit işaretli tam sayılar olarak saklanır ve bu, 19 Ocak 2038'de taşma yapacaktır. Bu noktadan sonra, 32 bit sistemler zamanları doğru bir şekilde temsil edemeyecektir, eğer daha büyük bir tam sayı türü kullanılarak değiştirilmezse.
-
Son derece büyük zaman damgaları: Çok uzak gelecekteki tarihler bazı sistemlerde temsil edilemeyebilir veya tutarsız bir şekilde işlenebilir.
-
Sıçrama saniyeleri: Unix zamanı, UTC'ye eklenen sıçrama saniyelerini hesaba katmaz. Bu, Unix zamanının astronomik zaman ile tam olarak senkronize olmadığı anlamına gelir.
-
Saat dilimi dikkate alımları: Unix zaman damgaları, anları UTC olarak temsil eder. Yerel zamana dönüştürmek, ek saat dilimi bilgisi gerektirir.
-
Yaz Saati Uygulaması: Zaman damgalarını yerel zamana dönüştürürken, Yaz Saati Uygulaması geçişlerinin karmaşıklıkları dikkate alınmalıdır.
Kullanım Durumları
Unix zaman damgaları, bilgisayar ve veri yönetimi uygulamalarında birçok alanda kullanılmaktadır:
-
Veritabanı Kayıtları: Zaman damgaları, genellikle girişlerin ne zaman oluşturulduğunu veya değiştirildiğini kaydetmek için kullanılır.
-
Web Geliştirme: HTTP başlıkları, çerezler ve önbellekleme mekanizmaları genellikle Unix zaman damgalarını kullanır.
-
Günlük Dosyaları: Sistem günlükleri, olayları kesin kronolojik sıralama ile kaydetmek için genellikle Unix zaman damgaları ile kayıt tutar.
-
Versiyon Kontrol Sistemleri: Git ve diğer VCS, zaman damgalarını, yapılan taahhütlerin ne zaman yapıldığını kaydetmek için kullanır.
-
API Yanıtları: Birçok web API'si, verilerin ne zaman oluşturulduğunu veya kaynakların ne zaman son değiştirildiğini belirtmek için zaman damgaları içerir.
-
Dosya Sistemleri: Dosya oluşturma ve değiştirme zamanları genellikle Unix zaman damgaları olarak saklanır.
-
Oturum Yönetimi: Web uygulamaları, kullanıcı oturumlarının ne zaman sona ereceğini belirlemek için zaman damgalarını kullanır.
-
Veri Analizi: Zaman damgaları, analitik uygulamalarda zamansal verilerle çalışmanın standart bir yolunu sağlar.
Alternatifler
Unix zaman damgaları yaygın olarak kullanılsa da, belirli bağlamlarda daha uygun olabilecek alternatif zaman temsil formatları vardır:
-
ISO 8601: İnsanlar tarafından okunabilirken sıralanabilirliği koruyan standart bir dize formatı (örneğin, "2021-01-01T00:00:00Z"). Veri alışverişi ve kullanıcıya yönelik uygulamalar için genellikle tercih edilir.
-
RFC 3339: İnternet protokollerinde kullanılan ISO 8601'in bir profili, daha katı biçimlendirme gereksinimlerine sahiptir.
-
İnsan tarafından okunabilir formatlar: Yerelleştirilmiş tarih dizeleri (örneğin, "1 Ocak 2021") doğrudan kullanıcı etkileşimi için daha uygunken, hesaplama için daha az uygundur.
-
Microsoft FILETIME: Windows sistemlerinde kullanılan, 1601-01-01'den itibaren geçen 100-nanosecond aralıklarını temsil eden 64-bit bir değer.
-
Julian Gün Sayısı: Astronomi ve bazı bilimsel uygulamalarda kullanılan, M.Ö. 4713'ten itibaren günleri sayan bir sistem.
Zaman formatının seçimi, aşağıdaki faktörlere bağlıdır:
- Gerekli hassasiyet
- İnsan okunabilirlik ihtiyaçları
- Depolama kısıtlamaları
- Mevcut sistemlerle uyumluluk
- Temsil edilmesi gereken tarih aralığı
Tarihçe
Unix zamanının kavramı, 1960'ların sonları ve 1970'lerin başlarında Bell Labs'ta Unix işletim sisteminin geliştirilmesiyle ortaya çıktı. Epoch olarak 1 Ocak 1970'i kullanma kararı, zamanında depolama gereksinimlerini en aza indirmek için pratikti; ilgi alanındaki tarihler için yeterince yakın ama tarihi veriler için yararlı olacak kadar uzaktı.
Orijinal uygulama, geçen saniye sayısını saklamak için 32 bit işaretli tam sayılar kullandı; bu, o zaman için Unix sistemlerinin beklenen ömrü için yeterliydi. Ancak, bu karar 2038 Yılı Problemi'ne (bazen "Y2K38" veya "Unix Milenyum Hatası" olarak adlandırılır) yol açtı, çünkü 32 bit işaretli tam sayılar, 1 Ocak 1970'ten itibaren geçen zamanları yalnızca 19 Ocak 2038'e kadar temsil edebilir.
Unix ve Unix benzeri işletim sistemleri popülerlik kazandıkça, Unix zaman damgası, bilgisayarlardaki zaman temsilinde geçerli bir standart haline geldi. Birçok programlama dili, veritabanı ve uygulama, Unix ortamının ötesine geçerek bu sistemi benimsedi.
Modern sistemler giderek 64 bit tam sayılar kullanarak zaman damgalarını saklamaktadır; bu, temsil edilebilir aralığı yaklaşık 292 milyar yıl ileri ve geri uzatarak 2038 Yılı Problemi'ni etkili bir şekilde çözmektedir. Ancak, eski sistemler ve uygulamalar hala savunmasız olabilir.
Unix zaman damgasının basitliği ve faydası, daha karmaşık zaman temsil formatlarının gelişmesine rağmen, devam eden geçerliliğini sağlamıştır. Hala dijital altyapımızın temel bir kavramı olmaya devam etmektedir.
Kod Örnekleri
İşte Unix zaman damgalarını çeşitli programlama dillerinde insan tarafından okunabilir tarihlere dönüştürme örnekleri:
1// JavaScript zaman damgası dönüşümü
2function convertUnixTimestamp(timestamp, use12Hour = false) {
3 // Yeni bir Date nesnesi oluşturun (JavaScript milisaniye kullanır)
4 const date = new Date(timestamp * 1000);
5
6 // Biçim seçenekleri
7 const options = {
8 year: 'numeric',
9 month: 'long',
10 day: 'numeric',
11 weekday: 'long',
12 hour: use12Hour ? 'numeric' : '2-digit',
13 minute: '2-digit',
14 second: '2-digit',
15 hour12: use12Hour
16 };
17
18 // Yerel biçimlendirme kullanarak dizeye dönüştürün
19 return date.toLocaleString(undefined, options);
20}
21
22// Örnek kullanım
23const timestamp = 1609459200; // 1 Ocak 2021 00:00:00 UTC
24console.log(convertUnixTimestamp(timestamp, false)); // 24 saat formatı
25console.log(convertUnixTimestamp(timestamp, true)); // 12 saat formatı
26
1# Python zaman damgası dönüşümü
2import datetime
3
4def convert_unix_timestamp(timestamp, use_12hour=False):
5 # Unix zaman damgasını datetime nesnesine dönüştür
6 date = datetime.datetime.fromtimestamp(timestamp)
7
8 # Tarih dizesini biçimlendir
9 if use_12hour:
10 format_string = "%A, %B %d, %Y %I:%M:%S %p" # 12 saat formatı AM/PM ile
11 else:
12 format_string = "%A, %B %d, %Y %H:%M:%S" # 24 saat formatı
13
14 return date.strftime(format_string)
15
16# Örnek kullanım
17timestamp = 1609459200 # 1 Ocak 2021 00:00:00 UTC
18print(convert_unix_timestamp(timestamp, False)) # 24 saat formatı
19print(convert_unix_timestamp(timestamp, True)) # 12 saat formatı
20
1<?php
2// PHP zaman damgası dönüşümü
3function convertUnixTimestamp($timestamp, $use12Hour = false) {
4 // Biçim dizesi
5 $formatString = $use12Hour
6 ? 'l, F j, Y g:i:s A' // 12 saat formatı AM/PM ile
7 : 'l, F j, Y H:i:s'; // 24 saat formatı
8
9 // Dönüştür ve tarihi biçimlendir
10 return date($formatString, $timestamp);
11}
12
13// Örnek kullanım
14$timestamp = 1609459200; // 1 Ocak 2021 00:00:00 UTC
15echo convertUnixTimestamp($timestamp, false) . "\n"; // 24 saat formatı
16echo convertUnixTimestamp($timestamp, true) . "\n"; // 12 saat formatı
17?>
18
1// Java zaman damgası dönüşümü
2import java.time.Instant;
3import java.time.LocalDateTime;
4import java.time.ZoneId;
5import java.time.format.DateTimeFormatter;
6
7public class UnixTimestampConverter {
8 public static String convertUnixTimestamp(long timestamp, boolean use12Hour) {
9 // Unix zaman damgasını Instant'a, sonra LocalDateTime'a dönüştür
10 Instant instant = Instant.ofEpochSecond(timestamp);
11 LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
12
13 // İstenilen biçime göre biçimlendirici oluştur
14 DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
15 use12Hour ? "EEEE, MMMM d, yyyy h:mm:ss a" : "EEEE, MMMM d, yyyy HH:mm:ss"
16 );
17
18 // Tarihi biçimlendir
19 return dateTime.format(formatter);
20 }
21
22 public static void main(String[] args) {
23 long timestamp = 1609459200; // 1 Ocak 2021 00:00:00 UTC
24 System.out.println(convertUnixTimestamp(timestamp, false)); // 24 saat formatı
25 System.out.println(convertUnixTimestamp(timestamp, true)); // 12 saat formatı
26 }
27}
28
1// C# zaman damgası dönüşümü
2using System;
3
4class UnixTimestampConverter
5{
6 public static string ConvertUnixTimestamp(long timestamp, bool use12Hour)
7 {
8 // Unix zaman damgasını DateTime'a dönüştür
9 // Unix zaman damgası, 1970-01-01'den itibaren geçen saniyedir
10 DateTime dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
11
12 // 12 saatlik veya 24 saatlik tercihe göre biçim dizesi
13 string formatString = use12Hour
14 ? "dddd, MMMM d, yyyy h:mm:ss tt" // 12 saat formatı AM/PM ile
15 : "dddd, MMMM d, yyyy HH:mm:ss"; // 24 saat formatı
16
17 // Biçimlendirilmiş tarih dizesini döndür
18 return dateTime.ToString(formatString);
19 }
20
21 static void Main()
22 {
23 long timestamp = 1609459200; // 1 Ocak 2021 00:00:00 UTC
24 Console.WriteLine(ConvertUnixTimestamp(timestamp, false)); // 24 saat formatı
25 Console.WriteLine(ConvertUnixTimestamp(timestamp, true)); // 12 saat formatı
26 }
27}
28
1# Ruby zaman damgası dönüşümü
2require 'time'
3
4def convert_unix_timestamp(timestamp, use_12hour = false)
5 # Unix zaman damgasını Time nesnesine dönüştür
6 time = Time.at(timestamp)
7
8 # 12 saatlik veya 24 saatlik tercihe göre biçim
9 if use_12hour
10 time.strftime("%A, %B %d, %Y %I:%M:%S %p") # 12 saat formatı AM/PM ile
11 else
12 time.strftime("%A, %B %d, %Y %H:%M:%S") # 24 saat formatı
13 end
14end
15
16# Örnek kullanım
17timestamp = 1609459200 # 1 Ocak 2021 00:00:00 UTC
18puts convert_unix_timestamp(timestamp, false) # 24 saat formatı
19puts convert_unix_timestamp(timestamp, true) # 12 saat formatı
20
1// Go zaman damgası dönüşümü
2package main
3
4import (
5 "fmt"
6 "time"
7)
8
9func convertUnixTimestamp(timestamp int64, use12Hour bool) string {
10 // Unix zaman damgasını Time'a dönüştür
11 t := time.Unix(timestamp, 0)
12
13 // 12 saatlik veya 24 saatlik tercihe göre biçim dizesi
14 formatString := "Monday, January 2, 2006 "
15 if use12Hour {
16 formatString += "3:04:05 PM" // 12 saat formatı AM/PM ile
17 } else {
18 formatString += "15:04:05" // 24 saat formatı
19 }
20
21 // Biçimlendirilmiş zamanı döndür
22 return t.Format(formatString)
23}
24
25func main() {
26 timestamp := int64(1609459200) // 1 Ocak 2021 00:00:00 UTC
27 fmt.Println(convertUnixTimestamp(timestamp, false)) // 24 saat formatı
28 fmt.Println(convertUnixTimestamp(timestamp, true)) // 12 saat formatı
29}
30
1// Swift zaman damgası dönüşümü
2import Foundation
3
4func convertUnixTimestamp(_ timestamp: Int, use12Hour: Bool) -> String {
5 // Unix zaman damgasından Date oluştur
6 let date = Date(timeIntervalSince1970: TimeInterval(timestamp))
7
8 // DateFormatter oluştur
9 let formatter = DateFormatter()
10 formatter.dateStyle = .full
11
12 // 12 saatlik veya 24 saatlik tercihe göre saat stilini ayarla
13 if use12Hour {
14 formatter.timeStyle = .medium
15 formatter.amSymbol = "AM"
16 formatter.pmSymbol = "PM"
17 } else {
18 formatter.timeStyle = .medium
19 formatter.dateFormat = formatter.dateFormat?.replacingOccurrences(of: "h:mm:ss a", with: "HH:mm:ss")
20 }
21
22 // Biçimlendirilmiş tarihi döndür
23 return formatter.string(from: date)
24}
25
26// Örnek kullanım
27let timestamp = 1609459200 // 1 Ocak 2021 00:00:00 UTC
28print(convertUnixTimestamp(timestamp, use12Hour: false)) // 24 saat formatı
29print(convertUnixTimestamp(timestamp, use12Hour: true)) // 12 saat formatı
30
1# R zaman damgası dönüşümü
2convert_unix_timestamp <- function(timestamp, use_12hour = FALSE) {
3 # Unix zaman damgasını POSIXct tarih/zamanına dönüştür
4 date_time <- as.POSIXct(timestamp, origin = "1970-01-01", tz = "UTC")
5
6 # 12 saatlik veya 24 saatlik tercihe göre biçim
7 if (use_12hour) {
8 format_string <- "%A, %B %d, %Y %I:%M:%S %p" # 12 saat formatı AM/PM ile
9 } else {
10 format_string <- "%A, %B %d, %Y %H:%M:%S" # 24 saat formatı
11 }
12
13 # Biçimlendirilmiş tarih dizesini döndür
14 format(date_time, format_string)
15}
16
17# Örnek kullanım
18timestamp <- 1609459200 # 1 Ocak 2021 00:00:00 UTC
19cat(convert_unix_timestamp(timestamp, FALSE), "\n") # 24 saat formatı
20cat(convert_unix_timestamp(timestamp, TRUE), "\n") # 12 saat formatı
21
1% MATLAB zaman damgası dönüşümü
2function formattedDate = convertUnixTimestamp(timestamp, use12Hour)
3 % Unix zaman damgasını MATLAB datetime'a dönüştür
4 % MATLAB tarihler 1900-01-01'den itibaren geçen günlerdir, 1 = 1900-01-01
5 % Unix zaman damgası 1970-01-01'den itibaren geçen saniyedir
6
7 % Önce Excel tarih formatına dönüştür
8 % 25569, 1900-01-01 ile 1970-01-01 arasındaki gün sayısıdır
9 excelDate = (timestamp / 86400) + 25569;
10
11 % 12 saatlik veya 24 saatlik tercihe göre biçim
12 if use12Hour
13 formattedDate = datestr(excelDate, 'dddd, mmmm d, yyyy h:mm:ss AM/PM');
14 else
15 formattedDate = datestr(excelDate, 'dddd, mmmm d, yyyy hh:mm:ss');
16 end
17end
18
19% Örnek kullanım
20timestamp = 1609459200; % 1 Ocak 2021 00:00:00 UTC
21disp(convertUnixTimestamp(timestamp, false)) % 24 saat formatı
22disp(convertUnixTimestamp(timestamp, true)) % 12 saat formatı
23
1' Excel VBA zaman damgası dönüşümü
2Function ConvertUnixTimestamp(timestamp As Long, Optional use12Hour As Boolean = False) As String
3 ' Unix zaman damgasını Excel tarih/zamanına dönüştür
4 ' Excel tarihleri 1900-01-01'den itibaren geçen günlerdir, 1 = 1900-01-01
5 ' Unix zaman damgası 1970-01-01'den itibaren geçen saniyedir
6
7 ' Önce Excel tarih formatına dönüştür
8 ' 25569, 1900-01-01 ile 1970-01-01 arasındaki gün sayısıdır
9 Dim excelDate As Double
10 excelDate = (timestamp / 86400) + 25569
11
12 ' 12 saatlik veya 24 saatlik tercihe göre biçim dizesi
13 If use12Hour Then
14 ConvertUnixTimestamp = Format(excelDate, "dddd, mmmm d, yyyy h:mm:ss AM/PM")
15 Else
16 ConvertUnixTimestamp = Format(excelDate, "dddd, mmmm d, yyyy hh:mm:ss")
17 End If
18End Function
19
20' Bir çalışma sayfasında kullanım:
21' =ConvertUnixTimestamp(1609459200, TRUE) ' 12 saat formatı
22' =ConvertUnixTimestamp(1609459200, FALSE) ' 24 saat formatı
23
Kenar Durumlarını Yönetme
Unix zaman damgaları ile çalışırken, kenar durumlarını doğru bir şekilde yönetmek önemlidir. İşte bazı yaygın kenar durumlarını ele almanın örnekleri:
1// JavaScript kenar durumu yönetimi
2function safeConvertTimestamp(timestamp, use12Hour = false) {
3 // Zaman damgasının geçerli olup olmadığını kontrol edin
4 if (timestamp === undefined || timestamp === null || isNaN(timestamp)) {
5 return "Geçersiz zaman damgası";
6 }
7
8 // Negatif zaman damgalarını kontrol edin (1970'ten önceki tarihler)
9 if (timestamp < 0) {
10 // Bazı tarayıcılar negatif zaman damgalarını doğru bir şekilde işleyemeyebilir
11 // 1970'ten önceki tarihler için daha sağlam bir yaklaşım kullanın
12 const date = new Date(timestamp * 1000);
13 if (isNaN(date.getTime())) {
14 return "Geçersiz tarih (1970'ten önce)";
15 }
16 }
17
18 // Y2K38 problemi için (32 bit sistemler için)
19 const maxInt32 = 2147483647; // 32 bit işaretli tam sayının maksimum değeri
20 if (timestamp > maxInt32) {
21 // Modern JavaScript'te çok büyük zaman damgaları için BigInt kullanmayı düşünün
22 console.warn("Zaman damgası 32 bit tam sayı sınırını aşıyor (Y2K38 sorunu)");
23 }
24
25 // Normal dönüşüm ile devam edin
26 try {
27 const date = new Date(timestamp * 1000);
28 const options = {
29 year: 'numeric',
30 month: 'long',
31 day: 'numeric',
32 weekday: 'long',
33 hour: use12Hour ? 'numeric' : '2-digit',
34 minute: '2-digit',
35 second: '2-digit',
36 hour12: use12Hour
37 };
38 return date.toLocaleString(undefined, options);
39 } catch (error) {
40 return "Zaman damgasını dönüştürürken hata: " + error.message;
41 }
42}
43
Kaynaklar
-
"Unix Zamanı." Vikipedi, Wikimedia Vakfı, https://en.wikipedia.org/wiki/Unix_time
-
"2038 Yılı Problemi." Vikipedi, Wikimedia Vakfı, https://en.wikipedia.org/wiki/Year_2038_problem
-
Olson, Arthur David. "Takvimsel Zamanın Karmaşıklıkları." The Open Group, https://www.usenix.org/legacy/events/usenix01/full_papers/olson/olson.pdf
-
"ISO 8601." Vikipedi, Wikimedia Vakfı, https://en.wikipedia.org/wiki/ISO_8601
-
"RFC 3339: İnternette Tarih ve Zaman: Zaman Damgaları." İnternet Mühendisliği Görev Gücü (IETF), https://tools.ietf.org/html/rfc3339
-
Kernighan, Brian W., ve Dennis M. Ritchie. "C Programlama Dili." Prentice Hall, 1988.
Geri Bildirim
Bu araç hakkında geri bildirim vermeye başlamak için geri bildirim toast'una tıklayın
İlgili Araçlar
Çalışma akışınız için faydalı olabilecek daha fazla aracı keşfedin