當前位置:首頁 » 編程語言 » c語言怎麼把日期轉成英文
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎麼把日期轉成英文

發布時間: 2022-04-17 02:07:36

1. 【c語言】鍵盤上輸入數字形式的年月日,輸出英文形式的年月日,並指出這天是當年的第幾天.哪裡錯了【在線】

一樓14級的大神,C語言中的注釋行能用「//」引出嗎?是不是看成C++了。。。。。。
LZ,你的int f(int a,int b,int c)這個函數是不是a是年、b是月、c是日,對吧,那麼你的第一句if語句的邏輯條件中有點混亂哦——
if ((c<=31&&c>=1)&&(b==1||b==3||b==5||b==7||b==8||b==10||b==12))||((a<=28&&a>=1)&&(b==4||b==6||b==9||b==11))||((c<=29&&c>=1)&&(b==2)&&(c%400==0||(c%4==0&&c%100!=0))))
你的第一部分((c<=31&&c>=1)&&(b==1||b==3||b==5||b==7||b==8||b==10||b==12))是說,當月份b為1、3、5、7、8、10、12時,日期c在1和31之間,這個沒問題;
但是你的第二部分((a<=28&&a>=1)&&(b==4||b==6||b==9||b==11))怎麼和年a扯上關系了?應該把a改成c才對,而且要把28改成30!4、6、9、11這4個月份不就是30天么……
第三部分((c<=29&&c>=1)&&(b==2)&&(c%400==0||(c%4==0&&c%100!=0)))),首先,你括弧貌似多半個,這是語法錯誤。再看邏輯。上面第一第二部分把11個月份都解決了,只剩下2月了。2月要分兩種情況。當是閏年是29天,當是平年28天。你最好分開說,即把最後一部分再分成兩部分作邏輯與運算,這樣邏輯更清晰。第一部分((c<=28&&c>=1)&&(b==2)),第二部分(c==29)&&(b==2)&&((a%400==0)||(a%4==0&&a%100!=0)))。
總結一下,int f(int a,int b,int c)函數第一句的if語句的條件表達式應該是:
((c<=31&&c>=1)&&(b==1||b==3||b==5||b==7||b==8||b==10||b==12))||((c<=30&&c>=1)&&(b==4||b==6||b==9||b==11))||((c<=28&&c>=1)&&(b==2))||((c==29)&&(b==2)&&((a%400==0)||(a%4==0&&a%100!=0))))
【先看到這里,留個爪,去吃個飯回來再繼續。】
【不好意思剛才上面少了個括弧,我給加上了。雖然LZ已經把一樓的選為滿意答案了,但我還是決定把我要說的寫完】
然後後面的int f(int a,int b,int c)函數沒問題。再看main函數。main函數前半部分沒問題,直到計算s的時候出錯了:
if ((a%4==0||(a%400==0&&y%100!=0))&&m>2
for (i=0;i<b;i++)
s+=mon[i];
首先,y和m都是未定義的變數,我想LZ應該表達的是年和月,所以,應該把y改成a,m改成b。改完之後再看,LZ只是對「當年為閏年且月份大於2」的情況對s進行了計算,其餘情況循環體是執行不了的。應該改成
if !((a%400==0)||(a%4==0&&a%100!=0))/*不是是閏年的話,該咋算咋算*/
for (i=0;i<b;i++)
s+=mon[i];
else/*是是閏年的話,把mon[2]換成29再算*/
{
mon[2]=29;
for (i=0;i<b;i++)
s+=mon[i];
}
這樣寫,就簡單明了了。後面再跟上LZ的語句,應該就大功告成了。把最終的源代碼寫下來:

#include<stdio.h>
int f(int a,int b,int c)
{
if ((c<=31&&c>=1)&&(b==1||b==3||b==5||b==7||b==8||b==10||b==12))||((c<=30&&c>=1)&&(b==4||b==6||b==9||b==11))||((c<=28&&c>=1)&&(b==2))||((c==29)&&(b==2)&&((a%400==0)||(a%4==0&&a%100!=0))))
return 0;
else
return 1;
}
void main()/*不知道LZ為何喜歡用int main(),這里我改回了習慣表達void main()*/
{ /*雖然變數可以等到要用的時候再定義,但那樣會使代碼變得雜亂,這里都給LZ集中到開頭了*/
int a,b,c,i,s=0;
char *str[]={" ","January","February","March","April","Mary","June","July","August","September","Octocber","November","December"};
int mon[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

scanf("%d %d %d",&a,&b,&c);
if (f(a,b,c))
printf("日期不合法\n");
else /*這里直接給LZ改成else語句了,使代碼更緊湊*/
{
if !((a%400==0)||(a%4==0&&a%100!=0))/*不是是閏年的話,該咋算咋算*/
for (i=0;i<b;i++)
s+=mon[i];
else/*是是閏年的話,把mon[2]換成29再算*/
{
mon[2]=29;
for (i=0;i<b;i++)
s+=mon[i];
}
printf("%s %d,%d\n%d",str[b],c,a,s+c);
}
}

2. C語言 ctime()

沒有 #include <ctime> 的寫法,只有 #include <time.h>,time.h 是C語言里時間的庫函數。
ctime在C語言里,只是一個把日期和時間轉換為字元串的函數。具體函數原型為:
char *ctime( const time_t *timer )
用法實例:
#include <stdio.h>
#include <time.h>
int main( void )
{
time_t ltime;
time( <ime ); //獲取當前的系統時間
printf( "The time is %s\n", ctime( <ime ) ); //把當前的系統時間轉換成字元串格式輸出來
return 0;
}

假如當前的系統時間是2011年1月19日,15時16分20秒,星期三,那麼經過這段程序運行後,在顯示終端上出現:The time is Wed Jan 19 15:16:20 2011

3. c語言,如何進行日期格式轉換

time.h 有函數 strftime 輸出各種格式,但沒有 你的 11th 13rd 格式。
簡單辦法是用查表法

#include "stdio.h"
#include "stdlib.h"
void main()
{
char dmy[20]="13/12/2010";
int i,j;
int a,b,c;
char d[32][5]={"0","1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th",
"11th","12th","13rd","14th","15th","16th","17th","18th",
"19th",.....,"31st"}; // 請自己補全
char m[13][4]={" ","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
j = strlen(dmy);
printf("j=%d\n",j);
for (i=0;i<j ;i++) if ( dmy[i] =='/') dmy[i]=' ';
sscanf(dmy,"%d %d %d",&a,&b,&c);
printf("%s %s %d",d[a],m[b],c); // 列印出你要的 13rd Dec 2010

}

4. C語言將輸入日期以英文輸出

#include"stdio.h"
intf(inta,intb,intc)
{
if (
(c<=28&&c>=1)||//所有月份都有1-28
((c<=31&&c>=1)&&
(b==1||b==3||b==5||b==7||b==8||b==10||b==12))||//這些月份有1-31
((c<=30&&c>=1)&&
(b==4||b==6||b==9||b==11))||//這些月份有1-30
((c<=29&&c>=1)&&
(b==2)&&(a%400==0||(a%4==0&&a%100!=0)))//閏年2月有1-29
)
return0;
else
return1;
}
intmain()
{
inta,b,c,i,s=0;
scanf("%d%d%d",&a,&b,&c);
if(f(a,b,c))
{
printf("日期不合法 ");
return0;
}
char*str[]={"","January","February","March","April","May","June","July","August","September","October","November","December"};
//某些月份拼寫錯誤
intmon[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(a%4==0&&(a%400==0||a%100!=0))mon[2]++;//如果閏年2月+1
for(i=0;i<b;i++)
s+=mon[i];
printf("%s%d,%d %d",str[b],c,a,s+c);
return0;
}

5. C語言轉換日期的表示形式

#include <stdio.h>
#include <string.h>
int main()
{int month,b,c;
scanf("%d/%d/%d",&month,&b,&c);
switch(month)
{
case 1:printf("Jan,%d,%d\n",b,c);
break;
case 2:printf("Feb,%d,%d\n",b,c);
break;
case 3:printf("Mar,%d,%d\n",b,c);
break;
case 4:printf("Apr,%d,%d\n",b,c);
break;
case 5:printf("May,%d,%d\n",b,c);
break;
case 6:printf("Jun,%d,%d\n",b,c);
break;
case 7:printf("Jul,%d,%d\n",b,c);
break;
case 8:printf("Aug,%d,%d\n",b,c);
break;
case 9:printf("Sep,%d,%d\n",b,c);
break;
case 10:printf("Oct,%d,%d\n",b,c);
break;
case 11:printf("Nov,%d,%d\n",b,c);
break;
case 12:printf("Dec,%d,%d\n",b,c);
break;
default:printf("Data Error\n");
}
return 0;
}

6. 如何用C語言將輸入的數字轉化成英語

對照字母的ASCII碼進行輸入數字,然後再輸出字母。

和你的相比,不知是否復雜。
此程序的計算范圍:0<=num<1000。如果還想要計算更大的數,可以在最後面加判斷語句,方法類似。
#include<stdio.h>
void main()
{
char *Eng1[20]={"zero","one","two","three","four","five","six","seven",
"eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen",
"sixteen","seventeen","eighteen","nineteen"};
char *Eng2[8]={"twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety"};
int num;
printf("請輸入數字: ");
scanf("%d",&num);
printf("對應的英文為: ");
if(num>=0&&num<=19)
printf("%s\n",Eng1[num]);
else if(num<100)
{
int s,y;
s=num/10;
y=num%10;
printf("%s %s\n",Eng2[s-2],Eng1[y]);
}
else if(num<1000)
{
int b,s,y;
b=num/100;
y=num%100;
if(y>9)
{
s=(num%100)/10;
y=(num%100)%10;
if(y==0)
printf("%s hundred and %s\n",Eng1[b],Eng2[s-2]);
else
printf("%s hundred and %s %s\n",Eng1[b],Eng2[s-2],Eng1[y]);
}
else
printf("%s hundred and %s\n",Eng1[b],Eng1[y]);
}
}

7. C語言題 如何輸入數字轉換成英文

#include
#include

int main()
{
char a=0,b;
printf("===========start============\n");
printf("字母轉成ASCII,輸入0退出程序\n");
do
{
printf("輸入一個字母:");
scanf("%s",&a);
if(a!='0')
printf("對應ASCII碼值:%d\n",a);
else
printf("退出程序\n",a);

}while(a!='0');
printf("===========end==============\n");
return 0;
}

8. c語言:從鍵盤上輸入數字形式的年月日,輸出英文形式的年月日,並指出這天是星期幾.

voidmain()
{
inty,m,d,a;
scanf("%d%d%d",&y,&m,&d);
if(m==1||m==2)
{
m+=12;
y--;
}
a=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7+1;//這是一個公式,網路下就知道了。
printf("輸入的這一天是星期%d ",a);
}

9. 如何用if語句實現星期的中英文轉換在c語言

具體操作步驟如下:
1、正確打開VC++,熟悉所在環境,調節字體大小,讓自身舒適。
編輯程序:
#include
voidmain()
{
inta;
printf("請輸入一個數字:");
scanf("%d",&a);
switch(a){
case1:printf("Monday ");break;
case2:printf("Tuesday ");break;
case3:printf("Wednesday ");break;
case4:printf("Thursday ");break;
case5:printf("Friday ");break;
case6:printf("Saturday ");break;
case7:printf("Sunday ");break;
default:printf("error");
}
}
點擊「編譯」,「連接」,「運行」,檢驗程序是否正確。
c語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言具有高效、靈活、功能豐富、表達力強和較高的可移植性等特點,在程序設計中備受青睞。C語言編譯器普遍存在於各種不同的操作系統中,其設計也影響了Java、Python等編程語言。

10. C語言提問:將一個月份數字轉換成月份的英文名稱

#include<stdio.h>
void main()
{
int n;
char M;

do
{
printf("Please input the number of the month:\n");
scanf("%d",&n);

switch(n)
{
case 1:
printf("您輸入的月份的英文名稱是:January\n");
break;
case 2:
printf("您輸入的月份的英文名稱是:February\n");
break;
case 3:
printf("您輸入的月份的英文名稱是:March\n");
break;
case 4:
printf("您輸入的月份的英文名稱是:April\n");
break;
case 5:
printf("您輸入的月份的英文名稱是:May\n");
break;
case 6:
printf("您輸入的月份的英文名稱是:June\n");
break;
case 7:
printf("您輸入的月份的英文名稱是:July\n");
break;
case 8:
printf("您輸入的月份的英文名稱是:Augest\n");
break;
case 9:
printf("您輸入的月份的英文名稱是:September\n");
break;
case 10:
printf("您輸入的月份的英文名稱是:October\n");
break;
case 11:
printf("您輸入的月份的英文名稱是:November\n");
break;
case 12:
printf("您輸入的月份的英文名稱是:December\n");
break;
}
printf("Do you want to continue? Input Y or not\n");
scanf(" %c",&M);
}while(M=='Y');
}