日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

计算日期之差

發布時間:2023/12/13 综合教程 103 生活家
生活随笔 收集整理的這篇文章主要介紹了 计算日期之差 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#include <stdio.h>
int judge_year(int year)
{

        if(year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
            return 1;
        else
            return 0;
        
}

int total_days( int year, int month, int day )
{

        int i, sum = 0;
        for(i = 1; i < month; i++)
        {

                if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
                {

                        sum += 31;

                } else if(i == 4 || i == 6 || i == 9 || i == 11){

                        sum += 30;

                } else if(i == 2){

                        if( judge_year(year) == 1)
                        {

                                sum += 29;

                        }
                        else
                        {

                                sum += 28;

                        }

                } 

        }
        sum += day;
        return sum;

}

//void swap(char *x, char *y)
void swap(int *x, int *y)
{

        int term;
        term = *x;
        *x = *y;
        *y = term;

}

int main()
{

    int year1, month1, day1, year2, month2, day2;
    int n, distance, i;
    scanf("%d", &n);
    while(n--){

            printf("第一個日期:");
            scanf("%d %d %d", &year1, &month1, &day1);
            printf("第二個日期:");
            scanf("%d %d %d", &year2, &month2, &day2);
            if(year1 == year2)
            {

                    distance = total_days(year1, month1, day1) - total_days(year2, month2, day2);
                    if(distance < 0)
                    {

                            distance *= -1;

                    }

            }
            else
            {
                    
                    distance = 0;
                    if(year1 > year2)
                    {

                            //swap(year1, year2);#1
                            //swap(month1, month2);
                            //swap(day1, day2);
                              swap(&year1, &year2);
                              swap(&month1, &month2);
                              swap(&day1, &day2);

                    }
                    distance += judge_year(year1) ? 366 - total_days(year1, month1, day1) : 365 - total_days(year1, month1, day1);
                    for(i = year1 + 1; i < year2; i++){
 
                           if( judge_year(i) )
                           {

                                 distance += 366;

                           }
                           else
                           {

                                 distance += 365;

                           }

                    }
                    distance += total_days(year2, month2, day2);

            }
            printf("%d年%d月%d日 到 %d年%d月%d日 有%d天
", year1, month1, day1, year2, month2, day2, distance);

    }
    return 0;

}

View Code

note:#1忘記取地址了。

一個swap函數省了很多筆墨。

總結

以上是生活随笔為你收集整理的计算日期之差的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。