回 帖 发 新 帖 刷新版面

主题:[原创]如何编辑一个日期程序

该程序可以输出任意一个日期的下一天

比如 输入 二月 二十八日 2009年

程序可以计算出2009年时平年,所以下一天是三月 一日 2009年

实在是不会了

高人急救啊!

回复列表 (共7个回复)

沙发

#include<cstdio>
#include<ctime>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
    int year, month, day;
    int day1[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int day2[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    cout << "Input year and month and day:" << endl;
    while(scanf("%d%d%d",&year,&month,&day) != EOF){
        if(year%4 == 0 || (year%100 == 0 && year%400 == 0)){
            if(day + 1 > day2[month]) {day = 1; month++;}
            else day++;
            if(month > 12) {year++; month = 1;}
        }
        else{
            if(day + 1 > day1[month]) {day = 1; month++;}
            else day++;
            if(month > 12) {year++; month = 1;}
        }
        printf("%d\t%d\t%d\n", year, month, day);
        cout << "Input year and month and day:" << endl;
    }
    system("PAUSE");
    return 0;
}

输入年,月,日,分别按回车
为了结构简单,没有错误年月日检查
没有大于3200年的没加入是否润年计算

因为能被100整除同时能被400整除为润年是对于小于3200年的条件
如果是大于3200的年,,能整除400,但不能整除3200的为润年
能整除3200年,同时又能整除172800年的也是润年
也就是3200年不是润年,172800是润年,864000年不是润年..

板凳


请问我想编程一个日期类的话,应该怎么做呢?

3 楼

class date
{private:int year;
         int month;
         int day1[];//
         int day2[];//
public:date(); 
        input();
        output();
        count();
.....
};
自己动手才有提高啊

4 楼

1 楼  
 if(year%4 == 0 || (year%100 == 0 && year%400 == 0))应该是
 if(year%4 == 0 || (year%100 != 0 && year%400 == 0));
可能打字的时候没注意。

5 楼

我也是初学者 见笑了  每次只能处理一个
#include<iostream>
using namespace std;
int main()
{
    int year,month,day;
    {
    cin>>year>>month>>day;
    const int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    const int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};
    if(year%4==0 && year%100!=0 || year%400==0)
    {
        if(day<b[month-1])
            cout<<year<<" "<<month<<" "<<day+1<<endl;
        else
        {
            day=1;
            if(month<12)
                month++;
            else
            {
                month=1;
                year++;
            }
            cout<<year<<" "<<month<<" "<<day<<endl;
        }
    }
    else
    {
        if(day<a[month-1])
            cout<<year<<" "<<month<<" "<<day+1<<endl;
        else
        {
            day=1;
            if(month<12)
                month++;
            else
            {
                month=1;
                year++;
            }
            cout<<year<<" "<<month<<" "<<day<<endl;
        }
    }
    return 0;
}

6 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系摩客元亨 QQ908889846
2010年,中国网民突破了4亿,
网络游戏玩家超过了3亿,
互联网即将进入全民网游的时代

7 楼

这是一个互助的模式。
不推广人也有钱赚的。分A B两个网。
不推广的人在A网。推广的人 在B网。
B网推广的人帮助A网。
A网拿6000元出局。
B网就多了。
C易特元亨QQ919169870
奖励制度 
C易特更多资料C易特元亨QQ919169870
http://blog.sina.com.cn/cyite6
C易特奖励制度
http://blog.sina.com.cn/s/blog_6b2561440100l5r8.html

我来回复

您尚未登录,请登录后再回复。点此登录或注册