[Çözüldü] Tarih ve saati istenilen (gg.aa.yyyy ss:dd) formatta yazdırma (C Dili)

Başlatan edge35, 20 Mayıs 2017 - 16:39:26

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

edge35

Yardım istediğim şey tamamen konu başlığındaki :) C' de anlık saat ve tarihi (gg.aa.yyyy ss:dd) formatında yazdırmak istiyorum fakat başaramadım.
time_t t=time(0);
printf("%s",ctime(&t));

Yukarıdaki kod şu şekilde veriyor -> (Sat May 20 16:32:34 2017) Yani (hhh aaa gg ss:dd:ss yyyy)
Yardımcı olabilirseniz çok sevinirim.


Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)


edge35

Çok teşekkür ederim. Aşağıdaki kod ile şu kadarını yapabildim -> 20.05.2017 16:57:43
Bir de salisesini kaldırabilirsem süper olacak :)

#include <stdio.h>
#include <time.h>
int main()
{
time_t now = time(0);
struct tm tstruct;
char buf[80];
tstruct = *localtime(&now);
strftime(buf, sizeof(buf), "%d.%m.%Y %X", &tstruct);
printf("%s\n",buf);
return 0;
}



Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)

7hr33l3t73r

dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

edge35

Alıntı yapılan: 7hr33l3t73r - 24 Mayıs 2017 - 14:40:43
https://www.tutorialspoint.com/c_standard_library/c_function_strftime.htm
%H:%M
Bu baya rahatmış, ben biraz uzatım yaptım işi :)

Kod (f_time_ubuntu-tr.c) Seç
#include <stdio.h>
#include <time.h>

int main()
{
time_t simdi = time(NULL);
char tarih_saat[20];

/*******************/
struct tm zaman;
char tarih[80];
zaman = *localtime(&simdi);
strftime(tarih, sizeof(tarih), "%d.%m.%Y", &zaman);

/*****************************/

/*********************/
char birlesik_saat[6];
int saat, dakika;
struct tm *simdi_tm;
simdi_tm = localtime(&simdi);
saat = simdi_tm->tm_hour;
dakika = simdi_tm->tm_min;

if(dakika<10 && saat<10) sprintf(birlesik_saat, "0%d:0%d",saat ,dakika);
else if(dakika>=10 && saat<10) sprintf(birlesik_saat, "0%d:%d",saat ,dakika);
else if(dakika<10 && saat>=10) sprintf(birlesik_saat, "%d:0%d",saat ,dakika);
else if(dakika>=10 && saat>=10) sprintf(birlesik_saat, "%d:%d",saat ,dakika);
/********************/

/********************/

sprintf(tarih_saat, "%s %s",tarih ,birlesik_saat);
/****************/
printf("%s\n",tarih_saat );
return 0;
}

Kod (Çıktı) Seç
muhammed@myilmaz:~/Desktop/Homeworks/hw7/denemeler$ ./f_time_ubuntu-tr
24.05.2017 15:39


Not: Bu kodu o 2,3 gün önce hazırlamıştım fakat ödev olduğu için o zaman koymamıştım, teslim tarihi bitti, kendi kodumu da koyup [Çözüldü] diye etiketliyorum.


Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)

edge35

strftime() fonksiyonu kullanımını bilmiyordum. Türkçede de bulamamıştım galiba. Sonradan da basit bir çeviri yapmıştım. Linkini şuraya koyayım, başkalarıda uğraşmasın.
https://forum.ubuntu-tr.net/index.php?topic=56546.0


Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)