今天是公历上的第几天

<?php 
   function is_leapyear($year)
   {
       //计算这一年是不是润年
        if(($year%4==0 and $year%100!=0)or ($year%400==0))
        {
            return 1;
            //1代表是润年
        }
        else
        {
            return 0;//0代表不是闰年    
        }
   }
   
   function cnt_year_day($year)
   { 
        //计算这一年之前一共过了几天;
        $sum=0;
          for($i=1;$i<$year;++$i)
          {
              if(is_leapyear($i))
              {
                $sum+=366;
              }
              else
              {
                  $sum+=365;
              }
          }
          return $sum;
   }
   
   function get_cal($year)
   { 
      //返回一个数组。得到这一年的月历表
     //每个月有几天的数组
       $cal_arr=array();
       if(is_leapyear($year))
       {
           $cal_arr=array(31,29,31,30,31,30,31,31,30,31,30,31);          
       }
       else
       {
           $cal_arr=array(31,28,31,30,31,30,31,31,30,31,30,31);           
       }
       return $cal_arr;
   }
   
  function cnt_year_month_day($year,$month)
  {
    //计算在这一年的这一个月之前。过了几天,加入时2004年,5月,那么就是计算
    //2004年的1月1日到4月30.、一共过了几天。
    $cal_arr=get_cal($year);            
    $sum=0;
    for($i=1;$i<$month;++$i)
    {
        $sum=$sum+$cal_arr[$i-1];                 
    }
    return $sum;                  
  }
  
  function total_day($year,$month,$day)
  {
      $sum=0;
      $sum=cnt_year_day($year)+cnt_year_month_day($year,$month)+$day;
      return $sum;      
  }
  
  
  //测试
  echo total_day(2010,4,15)%7;  
?>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值