zoz○zo女人和另类zoz0,freeⅹ性欧美xvideos,中文字幕人妻一区二区三区熟女,97四房播播,av狼最新网址

大學(xué)生新聞網(wǎng),大學(xué)生新聞發(fā)布平臺
大學(xué)生新聞網(wǎng)
大學(xué)生新聞大學(xué)生活校園文學(xué)大學(xué)生村官
社會實踐活動社會實踐經(jīng)歷社會實踐報告社會實踐總結(jié)社會實踐心得
全國排名校友會版軟科排名分類排名本科排名一本排名二本排名?婆琶學(xué)校地址
求職簡歷職場法則面試技巧職場故事求職招聘大學(xué)生就業(yè)
英語學(xué)習(xí)計算機(jī)學(xué)習(xí)電氣工程機(jī)械工程經(jīng)濟(jì)管理建筑設(shè)計財務(wù)會計
申請書證明書檢討書自薦信演講稿心得體會調(diào)查報告讀后感求職信推薦信其它范文

C語言日期函數(shù),日期處理函數(shù)

定義一個表示日期的結(jié)構(gòu)體類型,再分別定義函數(shù)完成下列功能:計算某一天是對應(yīng)年的第幾天,這一年一共多少天;計算兩個日期之間相隔的天數(shù)。兩個日期由鍵盤輸入。

算法思想
設(shè)定結(jié)構(gòu)體類型表示日期類型名為 Date,利用 typedef 將其定義為日期型類型名,有三個整型類型的成員分別表示年、月、日。

設(shè)定函數(shù)計算輸入的日期是這一年的第幾天。函數(shù)的形參為日期型變量,函數(shù)體中設(shè)定整型數(shù)組存放每個月的天數(shù),二月份的天數(shù)為 28 天;設(shè)定函數(shù)判斷年份是否為閏年以決定二月份的天數(shù)。根據(jù)輸入的日期月份,在數(shù)組中將相應(yīng)的月份天數(shù)求和,假日曰期即為天數(shù)。


設(shè)定函數(shù)完成兩個日期的比較,比較形參 d 和 s 兩個日期的大小。首先比較年,同年的比較月,同月的比較日。變量 start 保存輸入的小的日期年份,end 保存輸入日期大的年份,然后計算兩個日期之間的天數(shù)。


程序由 6 個函數(shù)構(gòu)成,yearday() 函數(shù)計算某年的天數(shù),monthday() 函數(shù)計算某年二月份的天數(shù),dayofyeaK() 函數(shù)計算某日期是某年的第幾天,cmpdate() 函數(shù)比較兩個日期的大小,interday() 函數(shù)計算兩個日期之間的天數(shù);dayofyear() 函數(shù)調(diào)用 monthday() 函數(shù),interday() 函數(shù)調(diào)用 cmpdate() 函數(shù)、yearday() 函數(shù)、dayofyear() 函數(shù);主函數(shù)調(diào)用 yearday() 函數(shù)、dayofyear() 函數(shù)、interday() 函數(shù)。

程序代碼

#include <stdio.h>
#include <math.h>
typedef struct
{
    int year,month,day;
}Date;
 
int yearday(int year)
{
    int yday;
    if(year%4==0&&year%100!=0||year%400==0)
        yday=366;
    else
        yday=365;
    return yday;
}
 
int monthday(int year)
{
    int mday;
    if(year%4==0&&year%100!=0||year%400==0)
        mday=29;
    else
        mday=28;
    return mday;
}
 
int dayofyear(Date d)
{
    int i,total=0;
    int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    months[2]=monthday(d.year);
    for(i=1;i<d.month;i++)
        total=total+months[i];
    total=total+d.day;
    return total;
}
 
int cmpdate(Date d,Date s)
{
    int result;
    if(d.year==s.year)
    {
        if(d.month==s.month)
        {
            if(d.day==s.day)
            result=0;
            else result=d.day-s.day;
        }
        else result=d.month-s.month;
    }
    else result=d.year-s.year;
    return result;
}
 
int interday(Date d,Date s)
{
    int result,te,ts,total;
    int year,start,end,day;
    int i;
    result=cmpdate(d,s);
    if(result>0)
    {
        start=s.year;
        end=d.year;
        te=dayofyear(d);
        ts=dayofyear(s);
    }
    else if(result<0)
    {
        start=d.year;
        end=s.year;
        ts=dayofyear(d);
        te=dayofyear(s);
    }
    else return 0;
    if(start==end)
        return abs(te-ts);
    else
    {
        total=0;
        for(i=start;i<=end;i++)
        {
            day=yearday(i);
            if(i==start)
                total=total+day-ts;
            else if(i==end)
                total=total+te;
            else
                total=total+day;
        }
    }
    return total;
}
 
int main()
{
    Date d1,d2;
    int y,n;
    printf("input date:");
    scanf("%d%d%d",&d1.year,&d1.month,&d1.day);
    scanf("%d%d%d",&d2.year,&d2.month,&d2.day);
    y=yearday(d1.year);
    n=dayofyear(d1);
    printf("%d days %d\n",d1.year,y);
    printf("%d-%d-%d is the %d day.\n",d1.year,d1.month,d1.day,n);
    n=interday(d1,d2);
    printf("%d-%d-%d and %d-%d-%d distance ",d1.year,d1.month,d1.day,d2.year,d2.month,d2.day);
    printf("%d days\n",n);
    return 0;
}
調(diào)試運行結(jié)果
輸入 2009 年 2 月 1 日和 2015 年 2 月 1 日,程序運行結(jié)果如下所示:
input date:2009 2 1 2015 2 1
2009 days 365
2009-2-1 is the 32 day.
2009-2-1 and 2015-2-1 distance 2191 days
總結(jié)
結(jié)構(gòu)體變量作為函數(shù)參數(shù)可以有以下兩種形式。

① 結(jié)構(gòu)體變量的成員作為函數(shù)的實參,則對應(yīng)定義函數(shù)的形參為普通變量或數(shù)組。如實例程序代碼中的“y=yearday(d1.year);”“months[2]=monthday(d.year);”兩條語句,調(diào)用函數(shù)的實參分別為結(jié)構(gòu)體變量 d1 和 d 的成員 year;對應(yīng)的被調(diào)用函數(shù) yearday()、monthday() 的形參都為 int year,是普通的整型變量。


② 函數(shù)的實參為結(jié)構(gòu)體變量,則對應(yīng)函數(shù)的形參應(yīng)該也是結(jié)構(gòu)體變量,其傳遞方式和普通變量一樣,采用的是值傳遞方式。如程序代碼中的 dayofyear()、cmpdate() 和 interday() 函數(shù)的形參均為結(jié)構(gòu)體 Date 的變量,在程序調(diào)用時實參也為結(jié)構(gòu)體 Date 的變量。
    作者:大學(xué)生新聞網(wǎng)    來源:大學(xué)生新聞網(wǎng)
    發(fā)布時間:2025-03-10    閱讀:
    掃一掃 分享悅讀
  • C語言日期函數(shù),日期處理函數(shù)
  • 定義一個表示日期的結(jié)構(gòu)體類型,再分別定義函數(shù)完成下列功能:計算某一天是對應(yīng)年的第幾天,這一年一共多少天;計算兩個日期之間相隔的
  • 03-10 關(guān)注:0
  • C語言求空間兩點之間的距離
  • 定義一個表示三維空間點坐標(biāo)的結(jié)構(gòu)類型,通過函數(shù)求空間上任意兩點之間的距離。
  • 03-10 關(guān)注:0
  • C語言三色旗問題
  • 有一根繩子,上面有紅、白、藍(lán)三種顏色的旗子。
  • 03-10 關(guān)注:0
  • C語言整數(shù)逆序輸出
  • 將一個從鍵盤輸入的整數(shù)存放到一個數(shù)組中,通過程序的運行按照數(shù)組中的逆序輸出該整數(shù),利用遞歸的方法解決問題。
  • 03-10 關(guān)注:0
  • C語言約瑟夫環(huán)問題
  • 編號為 1,2,3,…,n 的 n 個人圍坐一圈,任選一個正整數(shù) m 作為報數(shù)上限值,從第一個人開始按順時針方向報數(shù),報數(shù)到 m 時停止,報
  • 03-10 關(guān)注:1
  • C語言輸出等腰三角形
  • 本實例要求從鍵盤輸入任意整數(shù) n,通過程序運行輸出對應(yīng)高度為 n 的等腰三角形。
  • 03-10 關(guān)注:1