⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 date.h

📁 拿“优”的数据结构课程设计:模拟旅馆管理系统的床位的分配与回收功能。 里头包括源代码、exe文件、课程设计报告。非常全
💻 H
字号:
typedef struct date
{
    int year;  //0-3000
    int month; //1-12
    int day;   //0-31
}date;

int DayOfMonth(Y, M)
{
    switch(M)
    {
        case 1:  return 31; break;
        case 2:  return 28+(Y%4==0&&(Y%400==0||Y%100!=0));break;
        case 3:  return 31; break;
        case 4:  return 30; break;
        case 5:  return 31; break;
        case 6:  return 30; break;
        case 7:  return 31; break;
        case 8:  return 31; break;
        case 9:  return 30; break;
        case 10: return 31; break;
        case 11: return 30; break;
        case 12: return 31; break;
    }
	return 0;
}

void DataPlus(date D1, date *D2)
{
    if(D1.day != DayOfMonth(D1.year, D1.month))
    {
        D2->day = D1.day + 1;
    }
    else if(D1.month < 12)
    {
        D2->month = D1.month + 1;
        D2->day = 1;
    }
    else
    {
        D2->year = D1.year + 1;
        D2->month = 1;
        D2->day = 1;
    }
}

int DiffDate(date D1, date D2)
{
    int dateCount=0;
    int n, m, temp;
    if (D2.year < D1.year)//判断年数相差
    {
        temp = D2.year;
        D2.year = D1.year;
        D1.year = temp;
        temp = D2.month;
        D2.month = D1.month;
        D1.month = temp;
        temp = D2.day;
        D2.day = D1.day;
        D1.day = temp;
    }//if
    if (D2.year == D1.year)
    {
        if (D2.month < D1.month)
        {
            temp = D2.month;
            D2.month = D1.month;
            D1.month = temp;
            temp = D2.day;
            D2.day = D1.day;
            D1.day = temp;
        }
        if(D2.month == D1.month)
        {
            if(D2.day < D1.day)
            {
                temp = D2.day;
                D2.day = D1.day;
                D1.day = temp;
            }
            dateCount = D2.day - D1.day;
            return dateCount;
        }
        if( D2.month > D1.month)
        {
            dateCount = dateCount + D2.day;

            for (n=D2.month-1; n>D1.month-1; n--)
            {
                dateCount = dateCount + DayOfMonth(D2.year, n);
            }//循环至D2的月份比D1小,这样在加上D1的日子就为总天数
            dateCount = dateCount - D1.day;
            return dateCount;
        }
    }//两天在同一年的情况
    if(D2.year>D1.year)
    {
        dateCount = dateCount+D2.day;
        for(n=D2.month-1; n>0; n--)
        {
            dateCount = dateCount + DayOfMonth(D2.year, n);
        }
        for(m=D2.year-1; m>D1.year; m--)
        {
            dateCount = dateCount + 365 +
                    D2.year%4==0&&(D2.year%400==0||D2.year%100!=0);
        }
        for(n=12; n>D1.month-1; n--)
        {
            dateCount = dateCount + DayOfMonth(D1.year, n);
        }
        dateCount = dateCount - D1.day;
        return dateCount;
    }//D2年大于D1的年份
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -