php简单的日历程序

<?php
class Calendar{
   /**
    * @desc       :简单的日历类,供大家学习
    * @author     :Allen Wu
    * @Email      :wukewei00o@126.com
    * @Date       :2008-09-12
    * @version    :v1.0
    */
    /*定义变量年、月、日*/
    private $year,$month,$day;
    /*定义数组星期并初始化*/
    private $week    = array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
    /*定义数组月份并初始化*/
    private $monthes = array("01"=>"一月",
                             "02"=>"二月",
                             "03"=>"三月",
                             "04"=>"四月",
                             "05"=>"五月",
                             "06"=>"六月",
                             "07"=>"七月",
                             "08"=>"八月",
                             "09"=>"九月",
                             "10"=>"十月",
                             "11"=>"十一月",
                             "12"=>"十二月"
                             );

    function __construct(){
        $year  = isset($_POST['year']) ? $_POST['year'] : date('Y');
        $month = isset($_POST['month']) ? $_POST['month'] : date('m');
        $day   = isset($_POST['day']) ? $_POST['day'] : date('d');
        $this->set($year, $month, $day);
    }
    /**
     * @desc   设置年、月、日的值
     * @params String $year
     * @params String $month
     * @params String $day
     * @return
     */
    private function set($year, $month, $day){
        $this->year  = $year;
        $this->month = $month;
        $this->day   = $day;
    }

    /**
     * @desc   获取年、月、日的值并以数组形式返回
     * @params Array $info
     * @retrun Array
     */
    function get(array $info){
        $info = array('year' => $this->year,
                      'month'=> $this->month,
                      'day'  => $this->day);
        return $info;
    }
    /**
     * @desc   获得指定日期的星期值
     * @params String $year
     * @params String $month
     * @params String $day
     * @return String
     */
    private function getWeek($year, $month, $day){
        $weekday = date("w",mktime(0,0,0,$month,$day,$year));
        return $weekday;
    }
 

    /**
     * 输出日历,有兴趣的可以改进!
     * 其实这不是一个方法,不希望在类里出现html和样式
     * 有兴趣的可以改进下!给大家起个抛砖引玉的作用
     *
     */
    public function out(){
        $firstDay = $this->getWeek($this->year, $this->month, 1);
        echo "<div style="margin:0;border:1 solid black;width:300;font:9pt">".
             "<form action=$_SERVER[PHP_SELF] method="post" style="margin:0">".
             "<select name="month" onchange="this.form.submit();">";

        /*打印12个月*/
        for($month = 1; $month <= 12; $month++){
            $tmp = sprintf("%02d", $month);
            if(strcmp($tmp, $this->month) == 0){
                $select = "selected style="background-color:#c0c0c0"";
            }else{
                $select = "";
            }
            echo "<option value="$tmp" $select>".$this->monthes[$tmp]."</option>rn";
        }
        echo "</select><select name="year" onchange="this.form.submit();">";

        /*打印年份,前后10年*/
        for($year = $this->year - 10; $year < $this->year + 10; $year++){
            if($year > 2037){break;}
            if($year < 1970){continue;}
            if(strcmp($year, $this->year) == 0){
                $select = "selected style="background-color:#c0c0c0"";
            }else{
                $select = "";
            }
            echo "<option value="$year" $select>$year</option>rn";
        }
        echo "</select></form><table border=0 align=center>";

        /*打印星期标头*/
        for($week = 0; $week < count($this->week); $week++){
            echo "<td>".$this->week[$week];
        }

        /*打印所有日期*/
        for($tmpd = 1; $tmpd <= date("t",mktime(0,0,0,$this->month,$this->day,$this->year)); $tmpd++){
            if(strcmp($tmpd, $this->day) == 0){   //获得当前日期,做标记
                $flag="bgcolor='#ff0000'";
            }else{
                $flag=" bgcolor='#ffffff'";
            }
            if($tmpd == 1){
                echo "<tr>";      //补充打印
                for($i = 0; $i < $firstDay; $i++){
                    echo "<td>";
                }
            }
            if(strcmp($this->getWeek($this->year, $this->month, $tmpd), 0) == 0){
                echo "<tr><td align=center $flag>$tmpd";
            }else{
                echo "<td align=center $flag>$tmpd";
            }
        }
        echo "</table></div>";
    }
}
$obj = new Calendar();
$obj->out();
?>

时间: 2024-10-09 06:37:33

php简单的日历程序的相关文章

php简单的日历程序代码

通过date()函数可以很容易获得上面的数据  代码如下 复制代码 <?php $month = $_GET['m']?$_GET['m']:date('n'); $year = $_GET['y']?$_GET['y']:date('Y'); $start_week = date('w',mktime(0,0,0,$month,1,$year)); $day_num = date('t',mktime(0,0,0,$month,1,$year)); $end = false; ?> <

简单实用PHP日历程序代码

PHP日历程序,功能都是大众化的,可以下拉切换年月,上一年下一月下一年上一月,太另类的没去写,主要的写出来了,扩展起来就方便多了,标题为什么要叫精美呢,是因自已感觉界面还过得去,哈哈,让大家见笑了,不足之处还请指出. 效果代码如下 php日历核心代码  代码如下 复制代码 <?php //日历类 class calendar {     //当前的年     private $year;     //当前的月     private $month;     //一个月中第一天是星期几     p

asp制作的日历程序

纯ASP打造的日历程序,可自行美化,这里仅提供最简单的CSS样式... <style>body{font-size:12px; margin:20px 0 0 20px; padding:0}tr,td{text-align:center;}</style><%'================================='说明:日历文件'================================='取出对应的年月博客日志数据'==================

c c++-求用c编写的一个简单的爬虫程序,高手赐教,不胜感激

问题描述 求用c编写的一个简单的爬虫程序,高手赐教,不胜感激 本人是初学者,要编写一爬虫程序,抓取60多万个网页上的信息,实在是无从下手,请高手给一个能看得懂的简单的爬虫程序学习用,多谢 解决方案 我也要写一个C爬虫,不过遇到了一些问题,比如58这样的网站,用getaddrinfo返回的ip无法连接,已经耽误了我好几天了,别的问题到还没遇到

中文字符-如何用C语言编写一个简单的输入法程序,要求可以输入汉字。

问题描述 如何用C语言编写一个简单的输入法程序,要求可以输入汉字. 不太清楚汉字在计算机中是如何存储的,想知道例如微软的智能ABC以及搜狗输入法是怎样实现拼音拼写下的汉字输入. 解决方案 首先要有一个汉字的编码库,比如GB2312编写的是拼音输入法的话,还要建立一个拼音与汉字对应的数据库然后根据用户输入的拼音,提示出对应的汉字(汉字的优先顺序由数据库决定,同时还可以学习该用户的使用习惯)如果输入法还支持智能联想输入的话,还要加入词库(也有优先级),这样可以根据前一个字来推断出下一个可能的字 解决

[Eclipse笔记]一个最简单的SWT程序

笔记|程序 我们来看一段最简单的SWT程序是什么样子:package sean.test.swt;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;public class SimplestSWT {    public static void main(String[] args) {        Display display = new Display();        Shell s

新官上任,转贴一篇:Java做一个最简单的通话程序

程序 Java中的网络编程是一个很重要的部分,也是其编程优越性的地方之一.在Java中有一个专门的Java.net类库来管理网络编程的有关方法. 下面先介绍在Java中怎样用socket进行客户与服务器通信.最后再介绍一个一个最简单的通话程序. 一.怎样用socket进行客户与服务器通信 在Java中用socket进行客户/服务器之间的通信编程.Socket是两个实体之间进行通信的有效端点.通过socket可以获得源IP地址和源端口.终点IP地址和终点端口.用户可以将多个socket连入同一个端

JSP+JAVABEANS实现的WEB日历程序

js|web|程序|日历 一个JSP+JAVABEANS实现的WEB日历程序,主要使用了Calendar类! monthBean.javapackage test;import java.text.DateFormat;import java.text.DateFormatSymbols;import java.util.*; public class monthBean { public final static int[]DAYSINMONTH={31,28,31,30,31,30,31,3

用EclipseME0.5.5创建一个简单的J2ME程序

程序|创建 用EclipseME0.5.5创建一个简单的J2ME程序 上一篇文章<如何在Eclipse3.0.1上安装EclipseME 0.5.5版本>,我们已经讲了如何在Eclipse3.0.1上安装Eclipse程序. 今天我们就要用他来创建我们的第一个程序.绝大多数程序教程的第一个程序,都叫做HelloWorld.那么我们就来编一个HelloWorld程序. 1, 文件2, 新建项目3, 选择J2ME,J2ME Midlet Suite4, 输入项目名称:MyFirstJ2ME5, 选