输入年月日,用程序计算这一天是这一年的第几天,用C++,怎么编?

 我来答
强少2390
2014-09-26 · TA获得超过181个赞
知道答主
回答量:171
采纳率:75%
帮助的人:111万
展开全部
#include <iostream> using namespace std; #define INVALID_VALUE 0xFFFFFFFF int CalcDays(const int nYear, const int nMonth, const int nDay){ if(nYear < 0 || (nMonth < 1 || nMonth > 12) || (nDay < 1 || nDay > 31)) return INVALID_VALUE; const static int nLDays[] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; const static int nCDays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int res = 0; if(nYear%4==0 && nYear%100!=0 || nYear%400==0){ if(nDay > nLDays[nMonth]) return INVALID_VALUE; for(int i=0; i!=nMonth-1; ++i){ res += nLDays[i]; } res += nDay; } else { if(nDay > nCDays[nMonth]) return INVALID_VALUE; for(int i=0; i!=nMonth-1; ++i){ res += nCDays[i]; } res += nDay; } return res; } int main() { cout << "输入日期:"; int nYear, nMonth, nDay; cin >> nYear >> nMonth >> nDay; int res; if((res = CalcDays(nYear, nMonth, nDay)) != INVALID_VALUE){ cout << "该日期为该年的第" << res << "天."<<endl; } else { cout << "非法输入!" <<endl; } return 0; }
手机用户6f30a
2014-09-27 · TA获得超过118个赞
知道答主
回答量:139
采纳率:0%
帮助的人:169万
展开全部
#include <time.h> #include <stdio.h> void main() { printf("输入年 月日\n"); tm t={0}; scanf("%d %d %d",&t.tm_year,&t.tm_mon,&t.tm_mday); t.tm_mon--; t.tm_year-=1900; t.tm_isdst=1; time_t tt=mktime(&t); t=*localtime(&tt); printf("第%d天\n",t.tm_yday+1); }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式