本文目錄一覽:
- 1、用c語言從鍵盤任意輸入一個日期(年月日),輸出第二天的日期(年月日)。
- 2、c語言編程:輸入年月日,求出該天是該年的第幾天
- 3、編寫一個c語言程序,輸入一個年月日,輸出這個日期是這一年的第幾天。(考慮閏年)
- 4、C語言 年月日
- 5、C語言編程:給定一個日期(年/月/日)計算該日期是所在年的第幾天。
- 6、c語言輸出年月日
用c語言從鍵盤任意輸入一個日期(年月日),輸出第二天的日期(年月日)。
源程序如下:
#include “pch.h”
#define _CRT_SECURE_NO_WARNINGS
#include iostream
using namespace std;
int main()
{
int s[2][13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31,
0,31,29,31,30,31,30,31,31,30,31,30,31, };
int year = 0;
int month = 0;
int day = 0;
int n, i, daytemp;
int flag = 0;
int nyear = 0, nmonth = 0, nday = 0;
printf(“輸入年月日\n”);
scanf(“%d%d%d”, year, month, day);
//printf(“輸入天數\n”);
//scanf(“%d”,n);
n = 1;
if (year 0 || month 0 || month12 || day 1 || n 0)
{
printf(“輸入數據錯誤\n”);
return 1;
}
daytemp = day + n;//累加天數
if ((year % 4 == 0 year % 100 != 0) || year % 400 == 0)//閏年置1
flag = 1;
if (day s[flag][month])
{
printf(“輸入日期與年月不符.\n”);
return 1;
}
if (daytemp = s[flag][month])//當前日期加天數在本月
{
nyear = year;
nmonth = month;
nday = daytemp;
}
else
{
i = month;
nyear = year;
while (daytemp s[flag][i])//循環遞減,直到當前日期加天數在本月
{
daytemp = daytemp – s[flag][i];
i++;
if (i 12)//超過一年,年累加
{
nyear++;
if ((nyear % 4 == 0 nyear % 100 != 0) || nyear % 400 == 0)
flag = 1;
else
flag = 0;
i = i – 12;
}
}
nmonth = i;
nday = daytemp;
}
printf(“%d年%d月%d日第%d天后是:\n”, year, month, day, n);
printf(“%d年%d月%d日\n”, nyear, nmonth, nday);
return 0;
}
程序運行結果如下:
擴展資料:
其他實現方式:
int monthsize(int year, int month) {
int days;
if (month == 2) {
if (year % 4 == 0 year % 100 != 0 || year % 400 == 0)
return 29;
return 28;
}
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:days = 31; break;
case 4:
case 6:
case 9:
case 11: days = 30; break;
}
return days;
}
int main()
int year, month, day, days;
printf(“年 月 日:”);
while (scanf(“%d%d%d”, year, month, day) == 3) {
days = monthsize(year, month);
if (days == day) {
if (month == 12) {
++year;
month = 1;
day = 1;
}
else ++month;
}
else ++day;
printf(“第二天是:%d/%02d/%02d\n”, year, month, day);
printf(“年 月 日(q to quit):”);
}
return 0;
}
c語言編程:輸入年月日,求出該天是該年的第幾天
#includestdio.h
intmain()
{intday,month,year,sum,leap;
printf(“\n請輸入年、月、日,格式為:年,月,日(2015,12,10)\n”);
scanf(“%d%d%d”,year,month,day);//格式為:20190510
switch(month)//先計算某月以前月份的總天數
{case1:sum=0;break;
case2:sum=31;break;
case3:sum=59;break;
case4:sum=90;break;
case5:sum=120;break;
case6:sum=151;break;
case7:sum=181;break;
case8:sum=212;break;
case9:sum=243;break;
case10:sum=273;break;
case11:sum=304;break;
case12:sum=334;break;
default:printf(“dataerror”);break;}
sum=sum+day;//再加上某天的天數
if(year%400==0||(year%4==0year%100!=0))
{//判斷是不是閏年
leap=1;
}
else
{leap=0;
}
if(leap==1month2)
{//*如果是閏年且月份大於2,總天數應該加一天
sum++;
}
printf(“這是這一年的第%d天。”,sum);
printf(“\n”);
}
擴展資料
使用c語言編程結構tm格式化時間注意事項:
tm結構在C/C++中處理日期和時間相關的操作時,顯得尤為重要。tm結構以C結構的形式保存日期和時間,大多數與時間相關的函數都使用了tm結構。
使用了tm結構和各種與日期和時間相關的函數。在練習使用結構之前,需要對C結構有基本的了解,並懂得如何使用箭頭-運算符來訪問結構成員。
參考資料來源:百度百科—c語言
編寫一個c語言程序,輸入一個年月日,輸出這個日期是這一年的第幾天。(考慮閏年)
#include stdio.h
void main()
{
int year=0,month=0,day=0,i=0,sum=0;
while(1)
{
printf(“請輸入年份:”);
scanf(“%d”,year);
printf(“請輸入月份:”);
scanf(“%d”,month);
printf(“請輸入日期:”);
scanf(“%d”,day);
i=0; //i變數是為了控制月和日的格式是否輸入正確;
switch(month) //判斷每個月的日期是否輸入正確;
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day0day=31)
{
i=1;
}
break;
case 4:
case 6:
case 9:
case 11:
if(day0day=30)
{
i=1;
}
break;
case 2: //2月閏年可以輸入29日;
if((year%4==0year%100!=0)||year%400==0)
{
if(day0day=29)
{
i=1;
}
}
else
{
if(day0day=28)
{
i=1;
}
}
break;
default: //如果輸入不是1-12月份,那麼月份輸入有誤;
i=0;
break;
}
if(i) //如果i變數為1,那麼輸入正確,否則重新輸入;
{
break;
}
else
{
printf(“請輸入正確的年月日!!!\n”);
}
}
i=0;
switch(month) //把每個月的日期累加;
{
case 12:
i=i+30;
case 11:
i=i+31;
case 10:
i=i+30;
case 9:
i=i+31;
case 8:
i=i+31;
case 7:
i=i+30;
case 6:
i=i+31;
case 5:
i=i+30;
case 4:
i=i+31;
case 3:
if((year%4==0year%100!=0)||year%400==0)
{
i=i+29;
}
else
{
i=i+28;
}
case 2:
i=i+31;
case 1:
;
}
sum=i+day;
printf(“%d年%d月%d日是%d年的第%d天\n!”,year,month,day,year,sum);
}
拓展資料
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
儘管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標準規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
C語言 年月日
//還要考慮月日的大小比較
#includestdio.h
#includestdlib.h
int main(){
int y0,m0,d0,y1,m1,d1;
printf(“生日(年 月 日): “);
scanf(“%d %d %d”,y0,m0,d0);
printf(“當前日期(年 月 日): “);
scanf(“%d %d %d”,y1,m1,d1);
int age=y1-y0;
if(m1m0 || (m1==m0 d1d0))
age–;
printf(“年齡: %d”,age);
return 0;
}
C語言編程:給定一個日期(年/月/日)計算該日期是所在年的第幾天。
//1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊
//情況,閏年且輸入月份大於3時需考慮多加一天。
#includestdio.h
void
main(){
int
year,month,day,i,leap;
int
fleap(int
a);
printf(“請輸入年月日如(2009,1,1):”);
scanf(“%d,%d,%d”,year,month,day);
//printf(“%d,%d,%d\n”,year,month,day);
switch(month){
case
1:i=0;break;
case
2:i=31;break;
case
3:i=31+28;break;
case
4:i=31+28+31;break;
case
5:i=31+28+31+30;break;
case
6:i=31+28+31+30+31;break;
case
7:i=31+28+31+30+31+30;break;
case
8:i=31+28+31+30+31+30+31;break;
case
9:i=31+28+31+30+31+30+31+31;break;
case
10:i=31+28+31+30+31+30+31+31+30;break;
case
11:i=31+28+31+30+31+30+31+31+30+31;break;
case
12:i=31+28+31+30+31+30+31+31+30+31+30;break;}
leap=fleap(year);
if(leap==1)
{
i=i+day+1;
printf(“\n\n\n\n\n
%d年是潤年\n”,year);}
else
{i=i+day;printf(“\n\n\n\n\n
%d年不是潤年\n”,year);}
printf(“%d年%d月%d是%d年的第%d天”,year,month,day,year,i);
getch();}
int
fleap(int
a){
int
leap;
if(a%4==0)
{
if(a%100==0)
{
if(a%400==0)
leap=1;
else
leap=0;
}else
leap=1;
}
else
leap=0;
return(leap);}//判斷潤年的
c語言輸出年月日
下面是這段代碼,配合注釋體會一下吧
#include stdio.h
void MonthDay(int year,int yearDay,int *pMonth,int *pDay);
int main()
{
int year,yearDay,month,day;
scanf(“%d%d”,year,yearDay);//輸入年份和天數
MonthDay(year,yearDay,month,day);
printf(“%d-%d-%d”,year,month,day);
return 0;
}
void MonthDay(int year,int yearDay,int *pMonth,int *pDay)
{
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};//這個數組保存每月的天數
if(year%4==0year%100!=0||year%400==0)//判斷是否為閏年
days[1]=29;//閏年的二月有29天
*pMonth=1;//從一月開始看
while(yearDaydays[*pMonth-1])//如果哪一天超出這個月
{
yearDay-=days[*pMonth-1];//求出超出此月的天數
(*pMonth)++;//繼續考慮下一月
}
*pDay=yearDay;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/159470.html