PHP实现简单的万年历
<?php
/***********************
*** 功能:万年历 ***
*** 时间:2015/05/23 ***
***********************/ //1、获取日期信息年和月(默认为当前年和当前月)
error_reporting(E_ALL && (~E_NOTICE));
$year = $_GET["y"] ? $_GET["y"] : date("Y");
$mon = $_GET["m"] ? $_GET["m"] : date("m"); //2、计算出当前月有多少天和本月1号是星期几
$day = date("t",mktime(0,0,0,$mon,1,$year));//获取对应的天数
$w = date("w",mktime(0,0,0,$mon,1,$year));//获取当月1号是星期几 //3、输出日期的头部信息(标题和表头)
echo "<center>";
echo "<h1>{$year}年{$mon}月</h1>";
echo "<table width = '600' border = '1'>";
echo "<tr>";
echo "<th style = 'color : red'>星期日</th>";
echo "<th>星期一</th>";
echo "<th>星期二</th>";
echo "<th>星期三</th>";
echo "<th>星期四</th>";
echo "<th>星期五</th>";
echo "<th style = 'color : green'>星期六</th>";
echo "</tr>"; //4、循环遍历输出日期信息
$dd = 1;//定义一个循环的天数
while($dd <= $day){
echo "<tr>";
//输出一周的信息该输出日期的时候,或已经日期溢出时,输出的都是空单元格
for($i = 0;$i < 7;$i ++){
//当还没有到
if(($w > $i && $dd == 1) || $dd > $day){
echo "<td> </td>";
}else{
echo "<td>{$dd}</td>";
$dd ++;
} //若没有输出完日期dd信息
/* if($dd <= $day && ($w <= $i || $dd != 1)){
echo "<td>{$dd}</td>";
$dd ++;
}else{
echo "<td> </td>";
} */
}
echo "</tr>";
} echo "</table>"; //5、输出上一月和下一月的超级链接
//处理上一月和下一月的信息
$prey = $nexty = $year;
$prem = $nextm = $mon;
if($prem <= 1){
$prem = 12;
$prey --;
}else{
$prem --;
}
if($nextm >= 12){
$nextm = 1;
$nexty ++;
}else{
$nextm ++;
}
echo "<h4><a href = 'wannianli.php?y={$prey}&m={$prem}'>上一月</a> "; echo "<a href = 'wannianli.php?y={$nexty}&m={$nextm}'>下一月</a></h4>"; echo "</center>";
PHP实现简单的万年历的更多相关文章
- 用java进行简单的万年历编写
import java.util.Scanner; public class PrintCalendarDemo1 { public static void main(String[] args) { ...
- iOS:选择器控件UIPickerView的详解和演示
选择器控件UIPickerView: 功能:它能够创建一个类似于密码锁式的单列或多列的选择菜单,用户可以通过它设置的代理来选择需要菜单中的任意的数据.例如创建日历.字体表(类型.大小.颜色).图库等. ...
- JAVA上百实例源码以及开源项目
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...
- JAVA上百实例源码网站
JAVA源码包1JAVA源码包2JAVA源码包3JAVA源码包4 JAVA开源包1 JAVA开源包2 JAVA开源包3 JAVA开源包4 JAVA开源包5 JAVA开源包6 JAVA开源包7 JAVA ...
- 火狐浏览器高度&制作简单万年历&弹出层
浏览器高度: FireFox中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高 ...
- Java_万年历(简单)
1.方法,需要一个年份,一个月份.然后在控制台输出日历 // 输入一个年份和一个月份显示日历 public static void printCalendar(int year, int month) ...
- js万年历,麻雀虽小五脏俱全,由原生js编写
对于前端来说,我们可能见到最多的就是各种各样的框架,各种各样的插件了,有各种各样的功能,比如轮播啊,日历啊,给我们提供了很大的方便,但是呢?我们在用别人这些写好的插件,框架的时候,有没有试着问一问自己 ...
- Java基本语法_循环练习系列(二)——万年历
写万年历大致可以分为以下几个步骤: 1.根据用户输入的年份判断该年是否是闰年. 2.根据用户输入的月份计算该月的天数. 3.计算输入的年份之前的总天数. 4.计算输入的月份之前的天数. 5.计算该月的 ...
- 基于51单片机个LCD1602的万年历程序
小白 第一次跟新博客 基于51单片机和LCD1602的万年历程序 可实现走时和调时功能 有简单的1602菜单制作 欢迎大家交流 LCD1602和51单片机的连接方法 RS = P3^5; //数据/命 ...
随机推荐
- C#中[JsonIgnore]意义
字面意义是忽略序列化,就是当字段在序列化时,被[JsonIgnore]标记了的字段将被忽略序列化 序列化输出中使用Id和Name属性,但我绝对不会对AlternateName和Color感兴趣.我用[ ...
- linux运维、架构之路-tomcat服务
一.tomcat介绍 Tomcat服务器是一个免费的开放源代码的Web应用服务器,即能处理静态页面,又能处理动态的java页面 二.JDK安装 jdk是java开发工具包,也可以叫java ...
- JavaScript变量和字面量
一.什么是变量? 首先了解一下什么是内存:内存就是保存程序在运行过程中,所需要用到的数据8bit(比特是表示信息的最小单位). 8bit=1byte 1024byte=1MB 1024MB=1GB 1 ...
- Linux技术学习要点,您掌握了吗---初学者必看
1.如何做好嵌入式Linux学习前的准备? 要成为一名合格的嵌入式Linux工程师,就需要系统的学习软.硬件相关领域内的知识,需要在最开始就掌握开发的规范和原则,养成良好的工作习惯.为了确保学习的效果 ...
- 开始玩矩阵了!先来一道入门题![SDOI2008]递归数列
[SDOI2008]递归数列 题目描述 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + c ...
- 【bzoj3566】 [SHOI2014]概率充电器
*题目描述: 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品——概率充电器: “采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI 概率充电器,您生活不可 ...
- Leetcode 2. Add Two Numbers(指针和new的使用)结构体指针
---恢复内容开始--- You are given two non-empty linked lists representing two non-negative integers. The di ...
- SQL GROUP BY两个列
首先group by 的简单说明: group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使用group by的两个要素: (1) 出现在select后面的字段 要 ...
- Json ignore on class level
Exclude all instances of a class from serialization in Newtonsoft.Json Every custom type can opt how ...
- 一个包含n个结点的四叉树,每一个节点都有4个指向孩子节点的指针,这4n个指针有(3*n+1)个空指针. 4*n-(n-1) = 3*n+1
因为每个树都有一个头结点.头结点下面是4个子结点,然后每个子结点又有4个子节点.例如一个2层的四叉树,就会有5个结点,但头结点并不能计算进去.他的4个子节点下面接的都是空指针,可以得出空指针的个数为4 ...