月球-I型,月份日历生成器----基于PHP7.3
- 生成月份周日的类
- <?php
- class mycalendar
- {
- function __construct($year,$mon)
- {
- $this->nianyue=$year.'-'.$mon.'-'.'';
- $this->firstday=strtotime(date($this->nianyue));
- $this->m = intval(date('m',$this->firstday));
- $this->wdaylist=array();
- $this->lday = strtotime(date($this->nianyue).'+1 month -1 day');
- //echo "时间戳:".date('Y-m-d',$this->lday)."\n";
- }
- function startday()
- {
- $w = date('w',$this->firstday);
- $diffdays=;
- if ($w!=)
- {
- $diffdays= -$w;
- }
- $this->firstday = strtotime(date('Y-m-d',strtotime($this->nianyue))."+".$diffdays." day");
- //array_push($this->wdaylist,$w);
- //echo "\n".date('Y-m-d',$this->firstday);
- //echo "\n".$this->firstday;
- return $this->firstday;
- }
- function addwday()
- {
- $curday = $this->startday();
- while (true){
- if(intval(date('m',$curday)!=$this->m))
- {
- break;
- }
- //echo date('Y-m-d',$curday)."\n";
- array_push($this->wdaylist,date('Y-m-d',$curday));
- $curday=strtotime(date('Y-m-d',$curday)."+7 day");
- }
- return $this->wdaylist;
- }
- }
- 根据每个周日推算每个周的日期
- <?php
- require('mycal.php');
- class gencal
- {
- function __construct(array $wkday)
- {
- $this->time = strtotime($wkday[count($wkday)-]);
- $this->wdaylist=$wkday;
- $this->ldday= date('m',$this->time);
- $this->ttday= date('t',$this->time);
- $this->firstday=strtotime($wkday[]);
- }
- function diffdays()
- {
- $lastday = ;
- if($this->ldday<$this->ttday)
- {
- $lastday = strtotime(date('Y-m-d',$this->time)."+1 day");
- }
- //echo "this day:".date('Y-m-d',$lastday);
- return $lastday;
- }
- function adddays()
- {
- //生成日期辗转相加
- $genarray = array();
- $startday = $this->diffdays();
- //echo $startday."\n";
- $newday = date('Y-m-d',strtotime(date('Y-m-d',strtotime($this->wdaylist[count($this->wdaylist)-]))."+1 day"));
- //echo 'newday:'. $newday;
- $genarray[] = $newday;
- for ($i=;$i<;$i++)
- {
- $startday=strtotime(date('Y-m-d',$startday)."+1 day");
- $genarray[] = date('Y-m-d',$startday);
- /*array_push($genarray,strtotime(date('Y-m-d',$startday).'+1 day'));*/
- }
- return $genarray;
- }
- function minus($startday){
- //辗转相减法
- $thisweek=array();
- $startday = strtotime($startday);
- $thisweek[]=date('Y-m-d',$startday);
- //echo $startday;
- for($i=;$i>;$i--)
- {
- $startday=strtotime(date('Y-m-d',$startday)."-1 day");
- $thisweek[$i]=date('Y-m-d',$startday);
- //echo date('Y-m-d',$startday)."---"."\n";
- }
- return $thisweek;
- }
- function gendaylist()
- {
- $finallist=array();
- for ($i=;$i<count($this->wdaylist);$i++)
- {
- array_push($finallist,$this->minus($this->wdaylist[$i]));
- }
- array_push($finallist,$this->adddays());
- return $finallist;
- }
- }
- 测试
- $cal = new mycalendar(,);
- $wuwa= new gencal($cal->addwday());
- //$wuwa->adddays();
- print_r($wuwa->gendaylist());
- 输出结果
- Array
- (
- [] => Array
- (
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- )
- [] => Array
- (
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- )
- [] => Array
- (
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- )
- [] => Array
- (
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- )
- [] => Array
- (
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- )
- [] => Array
- (
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- [] => --
- )
- )
月球-I型,月份日历生成器----基于PHP7.3的更多相关文章
- 关于windows下基于php7.0.2下编写的第一个扩展
网上的教程是比较多的,但是基于php7+windows的教程非常之少,通过几天的摸索及参考很多资料,终于发现如下可以运行. php7要求使用vc2015,同时安装sdk,我使用的是8.1的window ...
- JAVA 打印指定月份日历
package learnExercise; import java.util.Scanner; public class PrintCalender { /** * @param args */ p ...
- 对象创建型模式------Builder(生成器或建造者模式)(2)
链接转自:http://blog.csdn.net/wuzhekai1985/article/details/6667467 主要思想是:首先有个指挥家思想者将大体的设计思路设计出来,然后寻找一部分工 ...
- 对象创建型模式------Builder(生成器)
本文系转载,转载地址http://blog.sina.com.cn/s/blog_59b6af690100zj3l.html,只供自己学习使用. 假设现在有三种产品,是玩具,都是由三部分组成,头,身体 ...
- 基于LAMP php7.1搭建owncloud云盘与ceph对象存储S3借口整合案例
ownCloud简介 是一个来自 KDE 社区开发的免费软件,提供私人的 Web 服务.当前主要功能包括文件管理(内建文件分享).音乐.日历.联系人等等,可在PC和服务器上运行. 简单来说就是一个基于 ...
- 基于jQuery 常用WEB控件收集
Horizontal accordion: jQuery 基于jQuery开发,非常简单的水平方向折叠控件. Horizontal accordion: jQuery jQuery-Horizonta ...
- PHP7革新与性能优化
有幸参与2015年的PHP技术峰会(PHPCON),听了鸟哥(惠新宸)的关于PHP7的新特性和性能优化的分享,一切都令人感到激动.鸟哥是国内最权威的PHP专家,他的分享有很多非常有价值的东西,我通过整 ...
- python 12 生成器
目录 1. 生成器 yeild 2. 推导式 2.1 列表推导式: 2.2 生成器推导式: 2.3 字典推导式: 2.4 集合推导式: 3. 内置函数(一) 1. 生成器 yeild 生成器的本质就是 ...
- R型思维模式对软件开发的影响(草稿)
The pragmatic programmers 一直在工作之余读些书,之前主要是纯英文版的计算机相关的算法,编译器,数学等,想通过读这些书来提高自己每日工作效能,结果收效甚微.一是,因为纯英文的书 ...
随机推荐
- 第二坑:Linux发布项目
在这里踩过两个坑: 1.第一个是上传文件的时候,不知道是什么原因,上传失败了,然后发布新版本的时候,依然用的上个版本的包,导致工作出现重大失误. 谨记:上传文件的时候,检查一下上传文件和本地文件的时间 ...
- 编写python高质量python代码的59个有效方法
第1条:确认自己的python版本 第2条:遵循PEP8的风格 1.空格 对于 占据多行的长表达式来说, 除了首行之外的其余各行都应该在通常的缩进级别上再加4个空格. 每行字符数不应该超过79. 2. ...
- WUSTOJ 1365: 矩阵旋转(Java)
题目链接:
- uboot 添加自定义命令
ref : https://www.cnblogs.com/FREMONT/p/9824226.html 1.添加命令 1.1在common目录下,新建一个cmd_xx.c, 需要添加的命令格式为: ...
- (十一)Activitivi5之流程控制网关:连线
一.案例 1.1 需求 我们希望如果是重要情况才需要班主任审批,否则班长审批就行. 1.2 案例 当流程走到“班长审批”任务节点的时候,如果是一般情况,则如下: /** * 完成任务 */ @Test ...
- (一)easyUI之第一个demo
一.下载 官网下载 : http://www.jeasyui.net/download/ 同时并下载官方中文API文档. 解压后的目录结构: 二.第一个demo 1 新建工程并导入包 2 ...
- C#强制回收垃圾
[DllImport("psapi.dll")] private static extern int EmptyWorkingSet(int hProcess); public v ...
- angular select 的第一行option 空白问题
记录一下这个问题的解决方案 <select class="form-control" ng-init="vm.columnId = vm.columnList[0] ...
- 字蛛webfont 安装及使用方法
先安装nodejs和git,比如放在D:/nodejs/ 文件夹 cmd 进入该文件夹,安装npm install express 安装 npm install font-spider -g 安装 ...
- 4.Java集合-ArrayList实现原理及源码分析
一.ArrayList概述: ArrayList 是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存 ArrayList不是线程安全的,只能用在单线程的情况 ...