3
------------------------------------------------------------------------
ļ1:dete.php,ʵ  תũ㷨
λ:Ŀ¼
------------------------------------------------------------------------
<?
  #ũÿµ
function get_lumar_day($date_n){
  $everymonth=array(
                    0=>array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1),
                    1=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2),
                    2=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3),
                    3=>array(5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4),
                    4=>array(0,30,30,29,30,29,29,30,29,29,30,30,29,0,1,5),
                    5=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,2,6),
                    6=>array(4,29,30,30,29,30,29,30,29,30,29,30,29,30,3,7),
                    7=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,4,8),
                    8=>array(0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9),
                    9=>array(2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10),
                    10=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,7,11),
                    11=>array(6,30,29,30,29,29,30,29,29,30,30,29,30,30,8,12),
                    12=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,9,1),
                    13=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,10,2),
                    14=>array(5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3),
                    15=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4),
                    16=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5),
                    17=>array(2,30,29,29,30,29,30,30,29,30,30,29,30,29,4,6),
                    18=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,5,7),
                    19=>array(7,29,30,29,29,30,29,29,30,30,29,30,30,30,6,8),
                    20=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9),
                    21=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10),
                    22=>array(5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11),
                    23=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,10,12),
                    24=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,1,1),
                    25=>array(4,30,29,30,29,30,30,29,30,30,29,30,29,30,2,2),
                    26=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,3,3),
                    27=>array(0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4),
                    28=>array(2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5),
                    29=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,6,6),
                    30=>array(6,29,30,30,29,29,30,29,29,30,29,30,30,29,7,7),
                    31=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,8,8),
                    32=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,9,9),
                    33=>array(5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10),
                    34=>array(0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11),
                    35=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,2,12),
                    36=>array(3,30,29,29,30,29,29,30,30,29,30,30,30,29,3,1),
                    37=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,4,2),
                    38=>array(7,30,30,29,29,30,29,29,30,29,30,30,29,30,5,3),
                    39=>array(0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4),
                    40=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5),
                    41=>array(6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6),
                    42=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,9,7),
                    43=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,10,8),
                    44=>array(4,30,29,30,29,30,29,30,29,30,30,29,30,30,1,9),
                    45=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10),
                    46=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11),
                    47=>array(2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12),
                    48=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,5,1),
                    49=>array(7,30,29,30,30,29,30,29,29,30,29,30,29,30,6,2),
                    50=>array(0,29,30,30,29,30,30,29,29,30,29,30,29,0,7,3),
                    51=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,8,4),
                    52=>array(5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5),
                    53=>array(0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6),
                    54=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,1,7),
                    55=>array(3,29,30,29,30,29,29,30,29,30,29,30,30,30,2,8),
                    56=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,3,9),
                    57=>array(8,30,29,30,29,30,29,29,30,29,30,29,30,29,4,10),
                    58=>array(0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11),
                    59=>array(0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12),
                    60=>array(6,30,29,30,29,30,30,29,30,29,30,29,30,29,7,1),
                    61=>array(0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2),
                    62=>array(0,29,30,29,29,30,29,30,30,29,30,30,29,0,9,3),
                    63=>array(4,30,29,30,29,29,30,29,30,29,30,30,30,29,10,4),
                    64=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,1,5),
                    65=>array(0,29,30,29,30,29,29,30,29,29,30,30,29,0,2,6),
                    66=>array(3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7),
                    67=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8),
                    68=>array(7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9),
                    69=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,6,10),
                    70=>array(0,30,29,29,30,29,30,30,29,30,30,29,30,0,7,11),
                    71=>array(5,29,30,29,29,30,29,30,29,30,30,30,29,30,8,12),
                    72=>array(0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1),
                    73=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2),
                    74=>array(4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3),
                    75=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,2,4),
                    76=>array(8,30,30,29,30,29,30,29,30,29,29,30,29,30,3,5),
                    77=>array(0,30,29,30,30,29,30,29,30,29,30,29,29,0,4,6),
                    78=>array(0,30,29,30,30,29,30,30,29,30,29,30,29,0,5,7),
                    79=>array(6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8),
                    80=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9),
                    81=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,8,10),
                    82=>array(4,30,29,30,29,29,30,29,29,30,29,30,30,30,9,11),
                    83=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,10,12),
                    84=>array(10,30,29,30,30,29,29,30,29,29,30,29,30,30,1,1),
                    85=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2),
                    86=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3),
                    87=>array(6,30,29,30,29,30,30,29,30,30,29,30,29,29,4,4),
                    88=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,5,5),
                    89=>array(0,30,29,29,30,29,29,30,30,29,30,30,30,0,6,6),
                    90=>array(5,29,30,29,29,30,29,29,30,29,30,30,30,30,7,7),
                    91=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8),
                    92=>array(0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9),
                    93=>array(3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10),
                    94=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,1,11),
                    95=>array(8,29,30,30,29,30,29,30,30,29,29,30,29,30,2,12),
                    96=>array(0,29,30,29,30,30,29,30,29,30,30,29,29,0,3,1),
                    97=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2),
                    98=>array(5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3),
                    99=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4),
                    100=>array(0,30,30,29,29,30,29,29,30,29,30,30,29,0,7,5),
                    101=>array(4,30,30,29,30,29,30,29,29,30,29,30,29,30,8,6),
                    102=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,9,7),
                    103=>array(0,30,30,29,30,30,29,30,29,29,30,29,30,0,10,8),
                    104=>array(2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9),
                    105=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10),
                    106=>array(7,30,29,30,29,30,29,30,29,30,30,29,30,30,3,11),
                    107=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,4,12),
                    108=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,5,1),
                    109=>array(5,30,30,29,29,30,29,29,30,29,30,29,30,30,6,2),
                    110=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3),
                    111=>array(0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4),
                    112=>array(4,30,29,30,30,29,30,29,30,29,30,29,30,29,9,5),
                    113=>array(0,30,29,30,29,30,30,29,30,29,30,29,30,0,10,6),
                    114=>array(9,29,30,29,30,29,30,29,30,30,29,30,29,30,1,7),
                    115=>array(0,29,30,29,29,30,29,30,30,30,29,30,29,0,2,8),
                    116=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9),
                    117=>array(6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10),
                    118=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11),
                    119=>array(0,30,29,30,29,30,29,29,30,29,29,30,30,0,6,12),
                    120=>array(4,29,30,30,30,29,30,29,29,30,29,30,29,30,7,1)
                  );
##############################
  #ũ
  $mten=array("null","","","","","","","","","","");
  #ũ֧
  $mtwelve=array("null","()","(ţ)","()","î()","()",
                "()","()","δ()","()","()","()","()");
  #ũ·
  $mmonth=array("","","","","","","",
                "","","","ʮ","ʮһ","ʮ","");
        
  #ũ
  $mday=array("null","һ","","","","","","","","","ʮ",
              "ʮһ","ʮ","ʮ","ʮ","ʮ","ʮ","ʮ","ʮ","ʮ","ʮ",
              "إһ","إ","إ","إ","إ","إ","إ","إ","إ","ʮ");
##############################
  #
  $weekday = array("","һ","ڶ","","","","");

  # 19001221
  $total=11;
  #
  $mtotal=0;
  ##############################
  #õ
//function getlunarday($adate){
  //$date_n=2;
  $today=getdate(time()+24*60*60*$date_n);
  if($today["year"]<1901 || $today["year"]>2020) 
      return '';
  $cur_wday=$today["wday"];

  for($y=1901;$y<$today["year"];$y++) { //㵽-19001221ʼ,ĺ
      $total+=365;
      if ($y%4==0) $total++;
  }

  switch($today["mon"]) { //ټӵļ
        case 12:  $total+=30;
        case 11:  $total+=31;
        case 10: $total+=30;
        case 9:  $total+=31;
        case 8:  $total+=31;
        case 7: $total+=30;
        case 6: $total+=31;
        case 5:  $total+=30;
        case 4: $total+=31;
        case 3: $total+=28;
        case 2: $total+=31;
  }

  if($today["year"]%4 == 0 && $today["mon"]>2) $total++; //껹Ҫһ

  $total=$total+$today["mday"]-1; //ӵµ

  $flag1=0;  //жѭ
  $j=0;
  while ($j<=120){  //ũۼжǷ񳬹
      $i=1;
      while ($i<=13){
            $mtotal+=$everymonth[$j][$i];
            if ($mtotal>=$total){
                $flag1=1;
                break;
            }
            $i++;
      }
      if ($flag1==1) break;
      $j++;
  }

  if($everymonth[$j][0]<>0 and $everymonth[$j][0]<$i){ //ԭû޲
      $mm=$i-1;
  } else{
      $mm=$i;
  }

  if($i==$everymonth[$j][0]+1 and $everymonth[$j][0]<>0) {
      $nlmon=$mmonth[0].$mmonth[$mm];#
  } else {
      $nlmon=$mmonth[$mm].$mmonth[13];
  }

  #·1ŵũ
  $md=$everymonth[$j][$i]-($mtotal-$total);
  if($md > $everymonth[$j][$i]) $md-=$everymonth[$j][$i];
  $nlday=$mday[$md];

  $nowday=$nlmon.$nlday;
  return $nowday;
}
//echo get_lumar_day(3);
?>

-------------------------------------------------------
ڶļ

---------------------------------------------
bir.php,ʵֻԱ
 memberdata һֶ"lumar_date" ֶ,Ϊַ
λ:Ŀ¼
--------------------------------------------
<?php
//նȡ seogo.cn;
//bir_config.txtڹյϣ
//bir_database_reread.txt жǷҪ¶ȡݿⲢļС
//1ʵִݿжȡڹյְ
//2ʵֹѴӽڵԶ
//3ʵֽѱıļУindex.htmֱӴļȡ
//4ְ֤ͨȡ֤ʱߵʱ䳬$time_intervalСʱݿ¶ȡļ
//5ܡbir_database_reread.txtbir_config.txtļʧʱԶָ


  #ũÿµ
  
require("dete.php");
$time_interval = -1;

function left_days($date_2){
        //7 date_1date_2Ϊְ
        $date_1 = date("Y-m-d",strtotime("7 days"));                
        //ֻҪ·ݺӣжԱȼɡ
        $arr_1 = explode("-",$date_1);        
        $arr_2 = explode("-",$date_2);
        
        //7
        $year_1 = $arr_1[0];
        $month_1 = $arr_1[1];
        $day_1 = $arr_1[2];
        
        //
        $year_2 = $arr_2[0];
        $month_2 = $arr_2[1];
        $day_2 = $arr_2[2];        
        
    //
        $new_date_1 = $date_1;
        
        $timestamp =mktime(0,0,0,$month_2,$day_2,$year_1);
        $new_date_2 = date("Y-m-d",$timestamp);        
        $days_left = 7 - round((strtotime($new_date_1)-strtotime($new_date_2))/3600/24);
        //
        //echo "days_left = ".$days_left."<br>";
        if($days_left>=0 && $days_left<=7){
                return $days_left;
        }
        return 1234;
        
}

if((!file_exists("bir_config.txt")) || (!file_exists("bir_database_reread.txt"))){
        $fo = fopen("bir_database_reread.txt",'w');
        $fw = fwrite($fo,time());
        $fw = fwrite($fo,"\n");
        $fw = fwrite($fo,"yes");
        $fc = fclose($fo);        
}
$arr = file("bir_database_reread.txt");
$hours = round((time()- $arr[0])/3600);
if($arr[1] == "yes" || $hours >= $time_interval){
        $con = mysql_connect($dbhost, $dbuser, $dbpw);
        $db = mysql_select_db($dbname,$con);
        
        $sql = "update {$pre}memberdata set `bday`='0000-00-00' where `lumar_date` != 'non'";
        mysql_query("set names 'GBK'");
        $query = mysql_query($sql,$con);
        
        for($j=0;$j<=7;$j++){                        
                    $lumar_date_j = get_lumar_day($j);
                    $xinli_date_j = date("Y-m-d",strtotime( $j." days"));
                        $sql = "update {$pre}memberdata set `bday`='$xinli_date_j' where `lumar_date` = '$lumar_date_j' and `lumar_date` !='non' ";
                        //$sql = "update {$pre}memberdata set `lumar_date` = '$lumar_date_j'";
                        //$sql = "update {$pre}memberdata set `bday`='$xinli_date_j'";
                        $query = mysql_query($sql,$con);
        }

        
        $sql="SELECT {$pre}group.gid,{$pre}memberdata.truename,{$pre}group.grouptitle,{$pre}memberdata.bday FROM {$pre}memberdata,{$pre}group " ;
        $sql = $sql." WHERE {$pre}memberdata.yz=1 and {$pre}memberdata.groupid={$pre}group.gid and {$pre}memberdata.bday!='0000-00-00'";
        mysql_query("set names 'GBK'");
        $query = mysql_query($sql,$con);
        $found = false;
        $newarr = array();
        $i=0;
        while($row = mysql_fetch_array($query,MYSQL_ASSOC)){        
                $Days = left_days($row["bday"]);
                if($Days>=0 && $Days<=7) {
                        //seogo.cn cjj  ÿҵļ¼ǰһֵ滹ж
                   array_unshift($row,$Days);
                   $newarr[$i] = $row;
                   $i=$i+1;
            }
        }
        if($i==0) {
                $fo = fopen("bir_config.txt",'w');
                $string = "ûԱ...";
                $fw = fwrite($fo,$string);
                $fc = fclose($fo);
        }else{
                array_multisort($newarr);
                $fo = fopen("bir_config.txt",'w');

                foreach($newarr as $my_value){
                        //seogo.cn cjj  $my_value ΪάеÿһУһλ飩
                        if($my_value[0]==0){
                            $string = '<font color="red">'." ".$my_value[grouptitle]."  ".$my_value["truename"]." ..."."</font><br>";
                        }else{
                             $string = " ".$my_value[grouptitle]."  ".$my_value["truename"]."ջ".$my_value[0].""."<br>";
                        }
                        $fw = fwrite($fo,$string);
                }
        
                $fc = fclose($fo);
        }
        
        $fo = fopen("bir_database_reread.txt",'w');
        $fw = fwrite($fo,time());
        $fw = fwrite($fo,"\n");
        $fw = fwrite($fo,"no");
        $fc = fclose($fo);
}
require("bir_config.txt");

?>

----------------------------------------------

:

template\default\index.htm еʵλ,
<?php 
require("php168/mysql_config.php");
require("bir.php");
?>'

ں̨ʹñǩ ޸Ҳ