<?php 
//<-------处理通过GET方法提交的变量;开始--------> 
if($HTTP_GET_VARS[year]=="") 

    $HTTP_GET_VARS[year]=date("Y"); 

if($HTTP_GET_VARS[month]=="") 

    $HTTP_GET_VARS[month]=date("n"); 

$month=$HTTP_GET_VARS[month]; 
$year=$HTTP_GET_VARS[year]; 
//<-------处理通过GET方法提交的变量;结束--------> 
if($year<1971) 

    echo "出错!"; 
    echo "<BR>"; 
    echo "<a href=$HTTP_SERVER_VARS[PHP_SELF]>Back</a>"; 
    exit(); 

?> 
<table width="200" border="1" cellspacing="0" cellpadding="0" bordercolor="#E7E7E7" style="font-size:12px;" align="center"> 

<tr align="center"><td colspan="2"> 
<?php  
//<-------当月份超出1至12时的处理;开始-------> 
if($month<1) 

    $month=12; 
    $year-=1; 

if($month>12) 

    $month=1; 
    $year+=1; 

//<-------当月份超出1至12时的处理;结束-------> 
//*************************************** 
//<---------上一年,下一年,上月,下月的连接处理及输出;开始---------> 
echo "<a href=$HTTP_SERVER_VARS[PHP_SELF]?year=".
($year-1)."&month=".$month."><<</a>年<
a href=$HTTP_SERVER_VARS[PHP_SELF]?year=".($year+1)."&month=".$month.">>></a>"; 

?> 
</td><td colspan="3"><?php echo $year."年".$month."月";?> 
</td><td colspan="2"> 
<?php  
echo "<a href=$HTTP_SERVER_VARS[PHP_SELF]?month=".
($month-1)."&year=".$year."><<</a>月<
a href=$HTTP_SERVER_VARS[PHP_SELF]?month=".($month+1)."&year=".$year.">>></a>"; 

//<--------上一年,下一年,上月,下月的连接处理及输出;结束---------> 
   ?></td></tr> 
 <tr align=center&
gt;<td><font color="red">日</font></td><td>
一</td><td>二</td><td>三</td><td>四<
/td><td>五</td><td>六</td><
/tr><tr> 
<?php 
$d=date("d"); 
$FirstDay=date("w",mktime(0,0,0,$month,1,$year));//取得任何一个月的一号是星期几,用于计算一号是由表格的第几格开始 
$bgtoday=date("d"); 
function font_color($month,$today,$year)//用于计算星期天的字体颜色 

    $sunday=date("w",mktime(0,0,0,$month,$today,$year)); 
    if($sunday=="0") 
    { 
        $FontColor="red"; 
    } 
    else 
    { 
        $FontColor="black"; 
    } 
    return $FontColor; 

function bgcolor($month,$bgtoday,$today_i,$year)//用于计算当日的背景颜色 

    $show_today=date("d",mktime(0,0,0,$month,$today_i,$year)); 
    $sys_today=date("d",mktime(0,0,0,$month,$bgtoday,$year)); 
    if($show_today==$sys_today) 
    { 
        $bgcolor="bgcolor=#6699FF"; 
    } 
    else 
    { 
        $bgcolor=""; 
    } 
    return $bgcolor; 

function font_style($month,$today,$year)//php用于计算星期天的字体风格 

    $sunday=date("w",mktime(0,0,0,$month,$today,$year)); 
    if($sunday=="0") 
    { 
        $FontStyle="<strong>"; 
    } 
    else 
    { 
        $FontStyle=""; 
    } 
    return $FontStyle; 

for($i=0;$i<=$FirstDay;$i++)//此for用于输出某个月的一号位置 

    for($i;$i<$FirstDay;$i++) 
    { 
        echo "<td align=center> </td>\n"; 
    } 
    if($i==$FirstDay) 
    { 
        echo "<td align=center ".bgcolor($month,$bgtoday,1,$year)."><font color=".font_color($month,1,$year).">".font_style($month,1,$year)."1</font></td>\n"; 

        if($FirstDay==6)//判断1号是否星期六 
        { 
            echo "</tr>"; 
        } 
    } 

$countMonth=date("t",mktime(0,0,0,$month,1,$year));//某月的总天数 
for($i=2;$i<=$countMonth;$i++)//输出由1号定位,随后2号直至月尾的所有号数 

    echo "<td align=center ".bgcolor($month,$bgtoday,$i,$year)."><font color=".font_color($month,$i,$year).">".font_style($month,$i,$year)."$i</font></td>\n"; 

    if(date("w",mktime(0,0,0,$month,$i,$year))==6)//判断该日是否星期六 
    { 
    echo "</tr>\n"; 
    } 

?> 
</table>

一个PHP日历程序的更多相关文章

  1. C++ 实现的一个打印日历程序

    C++ 实现的一个打印日历程序 说明:总共有三个文件 1.month.h 为定义函数的头文件 2.month.cpp 为函数的实现代码 3.mainprog.cpp 为主函数的实现代码 month.h ...

  2. 使用MVVM框架avalon.js实现一个简易日历

    最近在做公司内部的运营管理系统,因为与日历密切相关,同时无需触发条件直接显示在页面上,所以针对这样的功能场景,我就用avalon快速实现了一个简易日历,毕竟也是第一次造日历这种轮子,所以这里记录下我当 ...

  3. avalon.js实现一个简易日历

    使用MVVM框架avalon.js实现一个简易日历   最近在做公司内部的运营管理系统,因为与日历密切相关,同时无需触发条件直接显示在页面上,所以针对这样的功能场景,我就用avalon快速实现了一个简 ...

  4. 第一个Django应用程序_part2

    一.数据库配置 此文延续第一个Django应用程序_part1. 打开mystic/settings.py.这是一个普通的Python模块,其模块变量表示Django配置 默认情况下,配置使用SQLi ...

  5. 手把手教你写一个RN小程序!

    时间过得真快,眨眼已经快3年了! 1.我的第一个App 还记得我14年初写的第一个iOS小程序,当时是给别人写的一个单机的相册,也是我开发的第一个完整的app,虽然功能挺少,但是耐不住心中的激动啊,现 ...

  6. 用c-free 5写一个入门的程序

    本文记录了在windows系统中使用C-FREE 5新建一个Hello HoverTree程序的步骤. 安装好C-Free 5之后,打开.新建一个工程: 附C-Free 5下载:http://hove ...

  7. 字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串

    关于字符串的研究,目前已经有两篇. 原理篇:字符串混淆技术在.NET程序保护中的应用及如何解密被混淆的字符串  实践篇:字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略 今天来 ...

  8. 第一个C语言程序

    从第一个C语言程序了解C语言 了解关键字 了解函数 注释 C语言的执行流程 标识符 C语言的学习重难点 从第一个C语言程序了解C语言 上图是一个在控制台上显示“Hello, World!”的C语言源代 ...

  9. 第六章第一个linux个程序:统计单词个数

    第六章第一个linux个程序:统计单词个数 从本章就开始激动人心的时刻——实战,去慢慢揭开linux神秘的面纱.本章的实例是统计一片文章或者一段文字中的单词个数.  第 1 步:建立 Linu x 驱 ...

随机推荐

  1. JavaScript Emoji 表情库_js 类似于qq微信的表情库

    摘要: emoji就是表情符号,来自日语词汇“絵文字”(假名为“えもじ”,读音即emoji).emoji的创造者是日本人栗田穰崇(Shigetaka Kurita),他将目光投向儿时的各种元素以获取灵 ...

  2. HDU 2277 Change the ball

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2277 Change the ball Time Limit: 2000/1000 MS (Java/O ...

  3. 重写ScrollView 解决ScrollView嵌套viewpager事件冲突

    import android.content.Context; import android.util.AttributeSet; import android.view.GestureDetecto ...

  4. bootstrap-13

    bootstrap框架中制作导航条主要通过“.nav”样式.默认的.nav样式不提供默认的导航方式,必须附加另外一个样式才会有效,比如.nav-tabs,.nav-pill之类. 导航(标签型导航): ...

  5. java中的抽象类和接口

    抽象类和接口本身让面向对象真正实现,一个好的系统可以让抽象类或者接口实现多次复用,如果出现了集成具体类那么肯定是有问题的. 抽象类和接口很相似,很多时候好像功能可以混用,java设计者赋予了很多不一样 ...

  6. 第七课第六节,T语言流程语句( 版本5.0)

    select语句 seelct语句,可以说是if语句的升级版,当我们的if语句嵌套太多,或者if语句判断太多的时候,都可以考虑使用选择语句 在多条件判断的时候,选择语句的执行速度比多个if语句要快而且 ...

  7. OS实验一实验报告

    实验一.命令解释程序的编写实验 专业:商业软件工程   姓名:王泽锴  学号:201406114113 一.实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语 ...

  8. HDU 3966 Aragorn's Story

    题意:给一棵树,并给定各个点权的值,然后有3种操作:I C1 C2 K: 把C1与C2的路径上的所有点权值加上KD C1 C2 K:把C1与C2的路径上的所有点权值减去KQ C:查询节点编号为C的权值 ...

  9. ASP.NET 下拉列表绑定枚举类型值,不用再新建一个枚举表

    public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArg ...

  10. MVC缓存OutputCacheAttribute 类提高网站效率(转)

    原文转自:http://www.cnblogs.com/iamlilinfeng/p/4419362.html 命名空间:  System.Web.Mvc 程序集:  System.Web.Mvc(在 ...