C++'ta tarih işlemi nasıl yapılır?

bluemax

Kilopat
Katılım
10 Haziran 2016
Mesajlar
27
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Merhaba.

Ekrandan.
Enter date (dd/mm/yy): 12/04/21 şeklinde input alıp,

Dated this 12th day of april, 2021.

Şeklinde nasıl yazdırabiliriz?

Yardımcı olabilirseniz sevinirim. Teşekkürler.
 
Son düzenleyen: Moderatör:

#include <iostream> #include <string.h> using namespace std; int main() { char day[3],month[3],year[5]; cout<<"Please input the date in dd/mm/yyyy format:"; cin.get(day,3,'/'); cin.ignore(100,'/'); cin.get(month,3,'/'); cin.ignore(100,'/'); cin.get(year,5); //convert them to int int d,m,y; d=atoi(day); m=atoi(month); y=atoi(year); )

Forumda konu açmak yerine ingilizce şeklinde aratarak bir sürü kaynağa 1 saniyede ulaşabilirsiniz hocam. Amacım ukalalık değil, sadece sizin işinizi kolaylaştırmak.
 
Sevgili @Liutenant,

Aslında sorunum, ekrandan alınan input'un belli bir bölümlerini değişkene atayıp ona göre gün, ay, yıl olarak değerlendirmekti.

basic'de olduğu gibi,

input "tarih (gg/aa/yy) : ",tarih$

gun$ = left$(tarih$,2) : ay$= mid$(tarih$,4,2) : yil$ = "20" + right$(tarih$,2)

gibi.

Bunu "c" de nasıl yapabilirim? bunu öğrenmek istiyorum. İnternette tam olarak bunu bulamadığım için buraya yazdım. Niyetim kolaycılık değil. 59 yaşındayım. Bu yaşta bir şeyler öğrenmek istedim.
Forumda aratın bakalım millet neler için ne konular açmış. Buna mı takıldınız?
 
[CODE lang="c" title="C"]#include <stdio.h>

main(){

int day,month,year;
printf("Enter date (dd/mm/yy): ");
scanf("%d/%d/%d", &day,&month,&year);

switch(month){
case 1:
printf("Dated this %d day of %s, %d",day,"January",year);
break;
case 2:
printf("Dated this %d day of %s, %d",day,"February",year);
break;
case 3:
printf("Dated this %d day of %s, %d",day,"March",year);
break;
case 4:
printf("Dated this %d day of %s, %d",day,"April",year);
break;
case 5:
printf("Dated this %d day of %s, %d",day,"May",year);
break;
case 6:
printf("Dated this %d day of %s, %d",day,"June",year);
break;
case 7:
printf("Dated this %d day of %s, %d",day,"July",year);
break;
case 8:
printf("Dated this %d day of %s, %d",day,"August",year);
break;
case 9:
printf("Dated this %d day of %s, %d",day,"September",year);
break;
case 10:
printf("Dated this %d day of %s, %d",day,"October",year);
break;
case 11:
printf("Dated this %d day of %s, %d",day,"November",year);
break;
case 12:
printf("Dated this %d day of %s, %d",day,"December",year);
break;
}

}[/CODE]
 
Son düzenleme:
Hocan senden bir parser yapmanı istemiş dostum.

[CODE lang="cpp" title="Gereken korumaları sen koyarsın. Örneğin ay girdisinin 12'nin üzerinde olmaması gibi vs."]#include <iostream>

int main(){
std::string date;
std::cout<<"Enter new date: ";
std::getline(std::cin,date);
int pos = date.npos;
int temp = 0;
std::string validdate[3];
for(int i = 0; i < 3; i++){
pos = date.find("/",temp);
if(date.npos != pos){
validdate = date.substr(temp,pos);
date.erase(temp,pos+1);
temp = 0;
}
else{
validdate = date;
}
}
std::cout<<validdate[0]<<"/"<<validdate[1]<<"/"<<validdate[2]<<std::endl;
}[/CODE]
 
[CODE lang="c" title="C"]#include <stdio.h>

main(){

int day,month,year;
printf("Enter date (dd/mm/yy): ");
scanf("%d/%d/%d", &day,&month,&year);

switch(month){
case 1:
printf("Dated this %d day of %s, %d",day,"January",year);
break;
case 2:
printf("Dated this %d day of %s, %d",day,"February",year);
break;
case 3:
printf("Dated this %d day of %s, %d",day,"March",year);
break;
case 4:
printf("Dated this %d day of %s, %d",day,"April",year);
break;
case 5:
printf("Dated this %d day of %s, %d",day,"May",year);
break;
case 6:
printf("Dated this %d day of %s, %d",day,"June",year);
break;
case 7:
printf("Dated this %d day of %s, %d",day,"July",year);
break;
case 8:
printf("Dated this %d day of %s, %d",day,"August",year);
break;
case 9:
printf("Dated this %d day of %s, %d",day,"September",year);
break;
case 10:
printf("Dated this %d day of %s, %d",day,"October",year);
break;
case 11:
printf("Dated this %d day of %s, %d",day,"November",year);
break;
case 12:
printf("Dated this %d day of %s, %d",day,"December",year);
break;
}

}[/CODE]
Hocam, günlerdeki th, rd, nd ayrıntısını nasıl araya koyabilirim?
 
Hocam, günlerdeki th, rd, nd ayrıntısını nasıl araya koyabilirim?
[CODE lang="c" title="C"]

main(){

int day,month,year;
char ch[2];
printf("Enter date (dd/mm/yy): ");
scanf("%d/%d/%d", &day,&month,&year);

if(day==1){
ch[0]='s';
ch[1]='t';
}
else if(day==2){
ch[0]='n';
ch[1]='d';
}
else if(day==3){
ch[0]='r';
ch[1]='d';
}
else{
ch[0]='t';
ch[1]='h';
}

switch(month){
case 1:
printf("Dated this %d%s day of %s, %d",day,ch,"January",year);
break;
case 2:
printf("Dated this %d%s day of %s, %d",day,ch,"February",year);
break;
case 3:
printf("Dated this %d%s day of %s, %d",day,ch,"March",year);
break;
case 4:
printf("Dated this %d%s day of %s, %d",day,ch,"April",year);
break;
case 5:
printf("Dated this %d%s day of %s, %d",day,ch,"May",year);
break;
case 6:
printf("Dated this %d%s day of %s, %d",day,ch,"June",year);
break;
case 7:
printf("Dated this %d%s day of %s, %d",day,ch,"July",year);
break;
case 8:
printf("Dated this %d%s day of %s, %d",day,ch,"August",year);
break;
case 9:
printf("Dated this %d%s day of %s, %d",day,ch,"September",year);
break;
case 10:
printf("Dated this %d%s day of %s, %d",day,ch,"October",year);
break;
case 11:
printf("Dated this %d%s day of %s, %d",day,ch,"November",year);
break;
case 12:
printf("Dated this %d%s day of %s, %d",day,ch,"December",year);
break;
}

}[/CODE]

Şöyle düzenledim. Günü okuduktan sonra ilk üç gün için özel durum var st,nd,rd gerisi th. Bunu karakter arrayinin (string) içinde tutarak günün yanında bastırdım.
 
[CODE lang="c" title="C"]

main(){

int day,month,year;
char ch[2];
printf("Enter date (dd/mm/yy): ");
scanf("%d/%d/%d", &day,&month,&year);

if(day==1){
ch[0]='s';
ch[1]='t';
}
else if(day==2){
ch[0]='n';
ch[1]='d';
}
else if(day==3){
ch[0]='r';
ch[1]='d';
}
else{
ch[0]='t';
ch[1]='h';
}

switch(month){
case 1:
printf("Dated this %d%s day of %s, %d",day,ch,"January",year);
break;
case 2:
printf("Dated this %d%s day of %s, %d",day,ch,"February",year);
break;
case 3:
printf("Dated this %d%s day of %s, %d",day,ch,"March",year);
break;
case 4:
printf("Dated this %d%s day of %s, %d",day,ch,"April",year);
break;
case 5:
printf("Dated this %d%s day of %s, %d",day,ch,"May",year);
break;
case 6:
printf("Dated this %d%s day of %s, %d",day,ch,"June",year);
break;
case 7:
printf("Dated this %d%s day of %s, %d",day,ch,"July",year);
break;
case 8:
printf("Dated this %d%s day of %s, %d",day,ch,"August",year);
break;
case 9:
printf("Dated this %d%s day of %s, %d",day,ch,"September",year);
break;
case 10:
printf("Dated this %d%s day of %s, %d",day,ch,"October",year);
break;
case 11:
printf("Dated this %d%s day of %s, %d",day,ch,"November",year);
break;
case 12:
printf("Dated this %d%s day of %s, %d",day,ch,"December",year);
break;
}

}[/CODE]

Şöyle düzenledim. Günü okuduktan sonra ilk üç gün için özel durum var st,nd,rd gerisi th. Bunu karakter arrayinin (string) içinde tutarak günün yanında bastırdım.
Budur. Çok teşekkürler. Eline sağlık.
 

Yeni konular

Geri
Yukarı