标题:[求助]一个关于日期天数的程序问题
只看楼主
hemingsheng
Rank: 1
等 级:新手上路
帖 子:164
专家分:0
注 册:2007-5-16
结帖率:100%
 问题点数:0 回复次数:8 
[求助]一个关于日期天数的程序问题

怎么编一个程序可以准确计算某年某月某日是某年的第几天? 谢谢~

搜索更多相关主题的帖子: 天数 
2007-05-16 21:23
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 

Fight  to win  or  die...
2007-05-16 21:52
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
得分:0 
以下是引用aipb2007在2007-5-16 21:52:02的发言:
http://bbs.bc-cn.net/viewthread.php?tid=139784

都来问这个?


估计是要做作业挂~~~


每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-16 21:56
hemingsheng
Rank: 1
等 级:新手上路
帖 子:164
专家分:0
注 册:2007-5-16
得分:0 
版主的好复杂... 我看不懂``````
不过kisscjy的我能懂
总之都谢谢各位了
小弟以后还承蒙大哥大姐多多关照

设计彼岸程序 编写人生代码
2007-05-16 22:23
djp
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-12-28
得分:0 

这个。。。
太懒了吧。。这些好像是作业阿。。


2007-05-17 09:03
neverDie
Rank: 1
等 级:新手上路
威 望:1
帖 子:123
专家分:0
注 册:2007-5-5
得分:0 
作业,你和那人应该是一个学校?

2007-05-17 10:46
scut
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-5-17
得分:0 

#include<iostream.h>
//using namespace std;
struct date{
int year;
int month;
int day;
};
bool isLeapYear(const date &d){
if (d.year % 100 == 0){
if (d.year % 400 != 0)
return false;
}
else{
if (d.year % 4 != 0)
return false;
}
return true;
}

bool isValid(const date &d){
if (d.year < 1 || d.month < 1 || d.month > 12 || d.day < 1)
return false;
switch (d.month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
if (d.day > 31)
return false;
break;
case 4: case 6: case 9 : case 11:
if (d.day > 30)
return false;
break;
case 2:
if (isLeapYear(d)){
if (d.day > 29)
return false;
}
else{
if (d.day > 28)
return false;
}
break;
}
return true;
}
int countDay(const date &d){
int record[12] = {0,31,59,90,120,151,181,212,243,273,304,334};
if (d.month <= 2)
return record[d.month-1]+d.day;
else{
if (isLeapYear(d))
return record[d.month-1]+1+d.day;
else
return record[d.month-1]+d.day;
}
}


void main(){
int year,month,day;
cout<<"请分别输入年月日后都ENTER:"<<endl;
cin >> year >> month >> day;
date d = {year,month,day};
if (!isValid(d)){
cout << "invalid" << endl;
//system("pause");
// return 0;
}
cout <<"这是这年的第"<< countDay(d) <<"天!"<< endl;
//system("pause");
}
2007-05-17 10:52
天天tyler
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-5-17
得分:0 
回复:(hemingsheng)[求助]一个关于日期天数的程序问...

简单点的``初学者估计比较容易看懂```仅供参考``
不足之处还需提出改进```

#include <iostream>
using namespace std;

bool Isleap(int y)
{
return y%4==0 && y%100!=0 || y%400==0;
}

int Dom(int y , int m )
{
int d ;
if(m==2)
{
if(Isleap(y))
d = 29;
else
d = 28;
}
else if(m%2==1 && m<=7 || m%2==0 && m>=8)
d = 31;
else
d = 30 ;
return d;
}


int coutday(int y , int m , int d)
{
int day=0,i;
for(i=1;i<m;i++)
day = day + Dom(y , i);
day = day + d;
return day;
}

int main()
{
int year , month , day;
cout<<"please input year , month , day:"<<endl;
cin>>year>>month>>day;
cout<<"the reason is"<<coutday(year,month,day)<<endl;
return 0;
}

2007-05-17 22:56
hemingsheng
Rank: 1
等 级:新手上路
帖 子:164
专家分:0
注 册:2007-5-16
得分:0 

谢谢啦 很久没有上来了 在实习呢 通过各位兄弟对小弟的帮助和点拨 我的C++有了很大的进步(对我这个菜鸟而言)
今后我会继续努力的~~
谢谢啦!!


设计彼岸程序 编写人生代码
2007-06-30 20:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-139986-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.332723 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved