• 生成月份周日的类
  1. <?php
  2. class mycalendar
  3. {
  4. function __construct($year,$mon)
  5. {
  6. $this->nianyue=$year.'-'.$mon.'-'.'';
  7. $this->firstday=strtotime(date($this->nianyue));
  8. $this->m = intval(date('m',$this->firstday));
  9. $this->wdaylist=array();
  10. $this->lday = strtotime(date($this->nianyue).'+1 month -1 day');
  11. //echo "时间戳:".date('Y-m-d',$this->lday)."\n";
  12. }
  13. function startday()
  14. {
  15. $w = date('w',$this->firstday);
  16. $diffdays=;
  17. if ($w!=)
  18. {
  19. $diffdays= -$w;
  20. }
  21. $this->firstday = strtotime(date('Y-m-d',strtotime($this->nianyue))."+".$diffdays." day");
  22. //array_push($this->wdaylist,$w);
  23. //echo "\n".date('Y-m-d',$this->firstday);
  24. //echo "\n".$this->firstday;
  25. return $this->firstday;
  26. }
  27. function addwday()
  28. {
  29. $curday = $this->startday();
  30. while (true){
  31. if(intval(date('m',$curday)!=$this->m))
  32. {
  33. break;
  34. }
  35. //echo date('Y-m-d',$curday)."\n";
  36. array_push($this->wdaylist,date('Y-m-d',$curday));
  37. $curday=strtotime(date('Y-m-d',$curday)."+7 day");
  38. }
  39. return $this->wdaylist;
  40. }
  41. }
  • 根据每个周日推算每个周的日期
  1. <?php
  2. require('mycal.php');
  3. class gencal
  4. {
  5. function __construct(array $wkday)
  6. {
  7. $this->time = strtotime($wkday[count($wkday)-]);
  8. $this->wdaylist=$wkday;
  9. $this->ldday= date('m',$this->time);
  10. $this->ttday= date('t',$this->time);
  11. $this->firstday=strtotime($wkday[]);
  12. }
  13. function diffdays()
  14. {
  15. $lastday = ;
  16. if($this->ldday<$this->ttday)
  17. {
  18. $lastday = strtotime(date('Y-m-d',$this->time)."+1 day");
  19. }
  20. //echo "this day:".date('Y-m-d',$lastday);
  21. return $lastday;
  22. }
  23. function adddays()
  24. {
  25. //生成日期辗转相加
  26. $genarray = array();
  27. $startday = $this->diffdays();
  28. //echo $startday."\n";
  29. $newday = date('Y-m-d',strtotime(date('Y-m-d',strtotime($this->wdaylist[count($this->wdaylist)-]))."+1 day"));
  30. //echo 'newday:'. $newday;
  31. $genarray[] = $newday;
  32. for ($i=;$i<;$i++)
  33. {
  34. $startday=strtotime(date('Y-m-d',$startday)."+1 day");
  35. $genarray[] = date('Y-m-d',$startday);
  36. /*array_push($genarray,strtotime(date('Y-m-d',$startday).'+1 day'));*/
  37. }
  38. return $genarray;
  39. }
  40. function minus($startday){
  41. //辗转相减法
  42. $thisweek=array();
  43. $startday = strtotime($startday);
  44. $thisweek[]=date('Y-m-d',$startday);
  45. //echo $startday;
  46. for($i=;$i>;$i--)
  47. {
  48. $startday=strtotime(date('Y-m-d',$startday)."-1 day");
  49. $thisweek[$i]=date('Y-m-d',$startday);
  50. //echo date('Y-m-d',$startday)."---"."\n";
  51. }
  52. return $thisweek;
  53. }
  54. function gendaylist()
  55. {
  56. $finallist=array();
  57. for ($i=;$i<count($this->wdaylist);$i++)
  58. {
  59. array_push($finallist,$this->minus($this->wdaylist[$i]));
  60. }
  61. array_push($finallist,$this->adddays());
  62. return $finallist;
  63. }
  64. }
  • 测试
  1. $cal = new mycalendar(,);
  2. $wuwa= new gencal($cal->addwday());
  3. //$wuwa->adddays();
  4. print_r($wuwa->gendaylist());
  • 输出结果
  1. Array
  2. (
  3. [] => Array
  4. (
  5. [] => --
  6. [] => --
  7. [] => --
  8. [] => --
  9. [] => --
  10. [] => --
  11. [] => --
  12. )
  13.  
  14. [] => Array
  15. (
  16. [] => --
  17. [] => --
  18. [] => --
  19. [] => --
  20. [] => --
  21. [] => --
  22. [] => --
  23. )
  24.  
  25. [] => Array
  26. (
  27. [] => --
  28. [] => --
  29. [] => --
  30. [] => --
  31. [] => --
  32. [] => --
  33. [] => --
  34. )
  35.  
  36. [] => Array
  37. (
  38. [] => --
  39. [] => --
  40. [] => --
  41. [] => --
  42. [] => --
  43. [] => --
  44. [] => --
  45. )
  46.  
  47. [] => Array
  48. (
  49. [] => --
  50. [] => --
  51. [] => --
  52. [] => --
  53. [] => --
  54. [] => --
  55. [] => --
  56. )
  57.  
  58. [] => Array
  59. (
  60. [] => --
  61. [] => --
  62. [] => --
  63. [] => --
  64. [] => --
  65. [] => --
  66. [] => --
  67. )
  68.  
  69. )

月球-I型,月份日历生成器----基于PHP7.3的更多相关文章

  1. 关于windows下基于php7.0.2下编写的第一个扩展

    网上的教程是比较多的,但是基于php7+windows的教程非常之少,通过几天的摸索及参考很多资料,终于发现如下可以运行. php7要求使用vc2015,同时安装sdk,我使用的是8.1的window ...

  2. JAVA 打印指定月份日历

    package learnExercise; import java.util.Scanner; public class PrintCalender { /** * @param args */ p ...

  3. 对象创建型模式------Builder(生成器或建造者模式)(2)

    链接转自:http://blog.csdn.net/wuzhekai1985/article/details/6667467 主要思想是:首先有个指挥家思想者将大体的设计思路设计出来,然后寻找一部分工 ...

  4. 对象创建型模式------Builder(生成器)

    本文系转载,转载地址http://blog.sina.com.cn/s/blog_59b6af690100zj3l.html,只供自己学习使用. 假设现在有三种产品,是玩具,都是由三部分组成,头,身体 ...

  5. 基于LAMP php7.1搭建owncloud云盘与ceph对象存储S3借口整合案例

    ownCloud简介 是一个来自 KDE 社区开发的免费软件,提供私人的 Web 服务.当前主要功能包括文件管理(内建文件分享).音乐.日历.联系人等等,可在PC和服务器上运行. 简单来说就是一个基于 ...

  6. 基于jQuery 常用WEB控件收集

    Horizontal accordion: jQuery 基于jQuery开发,非常简单的水平方向折叠控件. Horizontal accordion: jQuery jQuery-Horizonta ...

  7. PHP7革新与性能优化

    有幸参与2015年的PHP技术峰会(PHPCON),听了鸟哥(惠新宸)的关于PHP7的新特性和性能优化的分享,一切都令人感到激动.鸟哥是国内最权威的PHP专家,他的分享有很多非常有价值的东西,我通过整 ...

  8. python 12 生成器

    目录 1. 生成器 yeild 2. 推导式 2.1 列表推导式: 2.2 生成器推导式: 2.3 字典推导式: 2.4 集合推导式: 3. 内置函数(一) 1. 生成器 yeild 生成器的本质就是 ...

  9. R型思维模式对软件开发的影响(草稿)

    The pragmatic programmers 一直在工作之余读些书,之前主要是纯英文版的计算机相关的算法,编译器,数学等,想通过读这些书来提高自己每日工作效能,结果收效甚微.一是,因为纯英文的书 ...

随机推荐

  1. 第二坑:Linux发布项目

    在这里踩过两个坑: 1.第一个是上传文件的时候,不知道是什么原因,上传失败了,然后发布新版本的时候,依然用的上个版本的包,导致工作出现重大失误. 谨记:上传文件的时候,检查一下上传文件和本地文件的时间 ...

  2. 编写python高质量python代码的59个有效方法

    第1条:确认自己的python版本 第2条:遵循PEP8的风格 1.空格 对于 占据多行的长表达式来说, 除了首行之外的其余各行都应该在通常的缩进级别上再加4个空格. 每行字符数不应该超过79. 2. ...

  3. WUSTOJ 1365: 矩阵旋转(Java)

    题目链接:

  4. uboot 添加自定义命令

    ref : https://www.cnblogs.com/FREMONT/p/9824226.html 1.添加命令 1.1在common目录下,新建一个cmd_xx.c, 需要添加的命令格式为: ...

  5. (十一)Activitivi5之流程控制网关:连线

    一.案例 1.1 需求 我们希望如果是重要情况才需要班主任审批,否则班长审批就行. 1.2 案例 当流程走到“班长审批”任务节点的时候,如果是一般情况,则如下: /** * 完成任务 */ @Test ...

  6. (一)easyUI之第一个demo

    一.下载 官网下载 : http://www.jeasyui.net/download/   同时并下载官方中文API文档. 解压后的目录结构: 二.第一个demo 1      新建工程并导入包 2 ...

  7. C#强制回收垃圾

    [DllImport("psapi.dll")] private static extern int EmptyWorkingSet(int hProcess); public v ...

  8. angular select 的第一行option 空白问题

    记录一下这个问题的解决方案 <select class="form-control" ng-init="vm.columnId = vm.columnList[0] ...

  9. 字蛛webfont 安装及使用方法

    先安装nodejs和git,比如放在D:/nodejs/  文件夹 cmd 进入该文件夹,安装npm install express 安装 npm install font-spider -g 安装  ...

  10. 4.Java集合-ArrayList实现原理及源码分析

    一.ArrayList概述: ArrayList 是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存 ArrayList不是线程安全的,只能用在单线程的情况 ...