#include "stdio.h"
#include "stdlib.h"
#include "string.h"

static char daytab[2][13] =
{
    {0,31,28,31,30,31,30,31,31,30,31,30,31},
    {0,31,29,31,30,31,30,31,31,30,31,30,31}
};

int day_of_year(int year,int month,int day)
{
    int leap;
    char *p;

    leap = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
    p = daytab[leap];
    while(--month)
        day += *++p;

    return day;
}

void month_day(int year,int yearday,int *pmonth,int *pday)
{
    int leap;
    char *p;

    leap = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
    p = daytab[leap];
    while(yearday > *++p)
        yearday -= *p;
    *pmonth = p - *(daytab + leap);
    *pday = yearday;
}
int main()
{
    int n;
    int month = 0,day = 0;
    int *pmonth = &month,*pday = &day;

    n = day_of_year(2014,11,14);
    printf("%d\n",n);

    month_day(2014,318,pmonth,pday);
    printf("%d %d",*pmonth,*pday);

    return 0;
}


*(daytab + leap) 表示的是地址。基础不牢啊,还想了半天。

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-08
  • 2022-02-24
  • 2021-10-03
  • 2022-02-12
  • 2021-08-13
  • 2021-11-12
猜你喜欢
  • 2021-11-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2021-12-01
  • 2022-12-23
相关资源
相似解决方案