浏览 2372 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-31
最后修改:2009-03-31
#include <iostream.h> /** * 输入年份和月来统计当月有多少天 */ bool isleapYear(int year){ if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) return true; else return false; } int getDays(int year,int month){ int day = 0; if(month < 8){ for(int i = 1;i <= 7;i++){ if(month == i){ if(i % 2 == 0){ if(i == 2){ if(isleapYear(year)) day = 29; else day = 28; }else{ day = 30; } }else{ cout<<"hello"; day = 31; } break; } } }else{ for(int i = 8;i <= 12;i++){ if(month == i){ if(i % 2 == 0){ day = 31; }else{ day = 30; } break; } } } return day; } int dayOfMonth(int year,int month){ return getDays(year,month); } int main(){ int year,month; cout<<"请分别输入年份和月分:\n"; cin>>year>>month; int days = dayOfMonth(year,month); cout<<year<<"年"<<month<<"月有"<<days<<"天"<<endl; return 0; } 感觉c++不像java在调用方法,没有顺序,而c++很有节奏感,可能是面向过程和面对对象之间的差异吧 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-31
解决这个问题最简单的方法是查表,速度快也容易读。
#define MAX_MONTH 12 const static int days_in_month[MAX_MONTH] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; ... ... |
|
返回顶楼 | |
发表时间:2009-03-31
麻烦发新手版吧。。。
|
|
返回顶楼 | |
发表时间:2009-03-31
嘛嘛。顶楼的代码除了cin和cout外其实不很C++?至少C++的惯用法用iostream是不带.h的,然后用std命名空间……
中间的两个for循环其实都没有意义对吧?循环体被一个大if罩着,实际上没必要循环,直接把循环体拉出来就行。 最方便的方法是查表没错~ 话说完整的DateTime API极其容易写错,包括Java、Excel等都不能幸免。小demo要实用化道路漫长……嗯扯远了。 |
|
返回顶楼 | |