精华内容
下载资源
问答
  • 2016年11月1日 16:18:19 星期二 主要用到的函数 strtotime() strtotime('+1 Tuesday', $timestamp) 获取下周二, 从时间戳$...strtotime('+1 month', $timestamp) 获取下个月的x, 还是以$timestamp开始...

    2016年11月1日 16:18:19 星期二

    主要用到的函数是 strtotime()

    strtotime('+1 Tuesday', $timestamp) 获取下周二, 从时间戳$timestamp开始计算, 如果$timestamp留空, 则从当天开始计算

    strtotime('+1 month', $timestamp) 获取下个月的x号, 还是以$timestamp开始计算的

      1 /**
      2      * desc 获取每周X执行的所有日期
      3      * @param string $start 开始日期, 2016-10-17
      4      * @param string $end 结束日期, 2016-10-17
      5      * @param int $weekDay 1~5
      6      * @return array
      7      */
      8     public function getWeeklyBuyDate($start, $end, $weekDay)
      9     {
     10         //获取每周要执行的日期 例如: 2016-01-02
     11         $start = empty($start) ? date('Y-m-d') : $start;
     12         $startTime = strtotime($start);
     13 
     14         $startDay = date('N', $startTime);
     15         if ($startDay < $weekDay) {
     16             $startTime = strtotime(self::$WORK_DAY[$weekDay]['en'], strtotime($start)); //本周x开始, 例如, 今天(周二)用户设置每周四执行, 那本周四就会开始执行
     17         } else {
     18             $startTime = strtotime('next '.self::$WORK_DAY[$weekDay]['en'], strtotime($start));//下一个周x开始, 今天(周二)用户设置每周一执行, 那应该是下周一开始执行
     19         }
     20 
     21         $endTime = strtotime($end);
     22         $list = [];
     23         for ($i=0;;$i++) {
     24             $dayOfWeek = strtotime("+{$i} week", $startTime); //每周x
     25             if ($dayOfWeek > $endTime) {
     26                 break;
     27             }
     28             $list[] = date('Y-m-d', $dayOfWeek);
     29         }
     30 
     31         return $this->getExedate($start, $end, $list);
     32     }
     33 
     34     /**
     35      * desc 获取每月X号执行的所有日期
     36      * @param string $start 开始日期, 2016-10-17
     37      * @param string $end 结束日期, 2016-10-17
     38      * @param int $monthDay 1~28
     39      * @return array
     40      */
     41     public function getMonthlyBuyDate($start, $end, $monthDay)
     42     {
     43         $monthDay = str_pad($monthDay, 2, '0', STR_PAD_LEFT); //左边补零
     44         $start = empty($start) ? date('Y-m-d') : $start;
     45         $startTime = strtotime($start);
     46         $startDay = substr($start, 8, 2);
     47 
     48         if (strcmp($startDay, $monthDay) < 0) {
     49             $startMonthDayTime = strtotime(date('Y-m-', strtotime($start)).$monthDay); //本月开始执行, 今天(例如,26号)用户设置每月28号执行, 那么本月就开始执行
     50         } else  {
     51             $startMonthDayTime = strtotime(date('Y-m-', strtotime('+1 month', $startTime)).$monthDay); //从下个月开始
     52         }
     53         $endTime = strtotime($end);
     54 
     55         $list = [];
     56         for ($i=0;;$i++) {
     57             $dayOfMonth = strtotime("+{$i} month", $startMonthDayTime);//每月x号
     58             if ($dayOfMonth > $endTime) {
     59                 break;
     60             }
     61             $list[] = date('Y-m-d', $dayOfMonth);
     62         }
     63         
     64         return $this->getExedate($start, $end, $list);
     65 
     66     }
     67 
     68     /**
     69      * desc 返回顺延后的执行日期列表
     70      * @param string $start 开始日期, 2016-10-17
     71      * @param string $end 结束日期, 2016-10-17
     72      * @param array $planDate
     73      * @return array
     74      */
     75     public function getExedate($start, $end, $planDate)
     76     {
     77         //获取所有交易日
     78         $allTradeDate = $this->getTradeDate($start, $end);
     79 
     80         //取最后一个交易日
     81         $endTradeDate = end($allTradeDate); //返回格式: ['2016-11-01' => '2016-11-01', '2016-11-02' => '2016-11-02', ...], 有冗余,方便编程
     82 
     83         $exeDate = []; //顺延后的执行日期
     84         foreach ($planDate as $date) {
     85             if (!empty($allTradeDate[$date])) {
     86                 $exeDate[$date] = $date;
     87             } else { //没找到, 需要往后顺延到下一个交易日
     88                 $exeDate[$date] = '';
     89 
     90                 $endTradeTime = strtotime($endTradeDate);
     91                 $currentTime = strtotime($date);
     92 
     93                 for ($i=$currentTime; $i<=$endTradeTime; $i+=86400) {//一天一天往后顺延, 直到找到下一个交易日, 直到数据库存储的最后一个交易日
     94                     $tmpDate = date('Y-m-d', $i);
     95                     if (!empty($allTradeDate[$tmpDate])) { //找到就退出循环
     96                         $exeDate[$date] = $tmpDate;
     97                         break;
     98                     }
     99                 }
    100             }
    101         }
    102 
    103         return $exeDate;
    104     }
    

     其中:

    1 public static $WORK_DAY = [
    2         1 => ['en' => 'Monday', 'cn' => '一'],
    3         2 => ['en' => 'Tuesday', 'cn' => '二'],
    4         3 => ['en' => 'Wednesday', 'cn' => '三'],
    5         4 => ['en' => 'Thursday', 'cn' => '四'],
    6         5 => ['en' => 'Friday', 'cn' => '五']
    7     ];
    

     

    转载于:https://www.cnblogs.com/bluealine/p/7271399.html

    展开全文
  • 入门学习Linux常用必会60命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    上面显示的登录星期、日、时间和使用的虚拟控制台。 4.应用技巧 Linux 真正的多用户操作系统,可以同时接受多用户登录,还允许一用户进行多次登录。这因为Linux和许多版本的Unix一样,提供了...
  • 押金保卫战

    2009-11-06 14:39:02
    10月16号,隔壁合租的新婚蜜月回来的同志们,告诉我们,下个星期房东就要交房了,这个星期就要搬走。   于是紧锣密鼓的到哇网上搜索的一通,很快就找到了个不错的房源。   10月17号,上班空闲时,到赶集网上...

     

    明天,又要搬家了,而且是通过中介找的房子,房东让三天内搬走。

     

    10月16号,隔壁合租的新婚蜜月回来的同志们,告诉我们,下个星期房东就要交房了,这个星期就要搬走。

     

    于是紧锣密鼓的到哇网上搜索的一通,很快就找到了几个不错的房源。

     

    10月17号,上班空闲时,到赶集网上搜索着房源,其中有一家“适合带小孩的夫妇居住”,这句话给我留下很深的印象,也由此进入一场和自己无关的“押金保卫战”中。于是第一个打了这家的电话,晚上就看了房,确实是蛮适合的,最后还交了不应该叫的200块定金。小魏说你和房东直接签需要1500,我原有的合同1400,呵呵,我选择了1400(说道这,以后千万别怎么贪图小利,不然就会发展成下面对于自己极其不利的尴尬禁地)

     

    10月24号,请了老同学来一起搬家,到那也不算远,花了三个小时时间就搬好了。押金三个月的房租一并给了小魏。

     

    10月27号,房子里突然多了一个小的折叠床,谁放的?应该是房东,还在想着,房东就来了,聊了一会,房东还好没说什么,在过了一会,女房东来了,一个上海老阿姨,跟我说了小巍租这个房子的前前后后,说了一边。结论就是,你不能注在这里,我没有和你签合同,必须要小魏住在这里才行。星期天又来了一次,是同样的问题。

     

    12月3号,终于等到出差的小魏回来了,叫来房东阿姨,结果和我预料的一样,互相都不妥协,最后押金还是要被阿姨扣去一般,这样才罢休。

     

    我在这里什么也不好说,这里押金房租出钱的人其实是我,小魏变成了我的中间人,房东阿姨死咬着不放(小张必须搬走,小魏你租我没意见)。我为了100块,小魏和房东为了押金1400,三方混合到了一起。

     

    但是这是还没有真正的结束,未来,可能还会有所变化。

     

     

    展开全文
  • 题目:请输入星期几的第一字母来判断一下是星期几,如果第一字母一样,则继续  判断第二字母。 【程序21】 题目:求100之内的素数  【程序22】 题目:对10数进行排序 【程序23】 题目:求一3*3矩阵...
  • UGNX后处理器PUI版

    2018-07-04 07:36:23
    ( 年//日 时:分:秒 星期几 ); ( 加工时间 ); ( XYZ坐标最大值最小值 ); ( 总刀具数量 ); ( 刀具列表及其Z坐标最大值最小值 ); 备注:独创的程序头输出刀具列表,在任何情况,都准确的,比如同一...
  • java 经典习题.doc

    2009-09-16 11:32:59
    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... ...
  • 简明批处理教程22009年1020日 星期二 下午 05:35 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古...
  • 智点门窗工厂软件

    2018-11-12 14:32:27
    手工算单,旺季加班加点也干不完,出错率也高,淡季人员闲置照拿工资,几个月培训一个技术员 ,刚上手又走了;用智点木门生产算料软件输入订单参数,马上就算出来了。且一劳永逸,一次性测试准确了,后面再也不会...
  • 例如,一个星期内只有七天,一年只有十二个月, 一个班每周有六门课程等等。如果把这些量说明为整型, 字符型或其它类型显然不妥当的。 为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出...
  • 另外特别需要留意的即使考的同一门专业课、报的同一专业,这四学院之间也不能相互进行跨院调剂。 导师和实验室不同,研究方向可能会有所差异。 除此之外暂没有发现有什么大的差异。 3. 计算机科学与...
  • Tcl_TK编程权威指南pdf

    热门讨论 2011-03-25 09:30:55
    尽管它是个商用软件包,但你也可以在Internet上找到它(见第VII页),而且可以在自己的应用程序中自由使用这软件包。Tcl解释器已经从Unix平台移植到了DOS、Windows、OS/2、NT以及Macintosh环境中,而TK工具包也从X ...
  • 唉,图形解锁应该也可以破解的,但是最近事多,要过两个星期才有空研究,有需要的可以等等,或者大伙自己可以研究一下,按像素识别。 -----------------------------------------------------------------------...
  • 3.3.4 WEEKDAY——返回当前日期是星期几 130 3.3.5 HOUR——返回小时数 131 3.3.6 MINUTE——返回分钟数 131 3.3.7 SECOND——返回秒数 132 3.4 文本与日期、时间格式间的转换 133 3.4.1 DATEVALUE——将文本...
  • Java范例开发大全 (源程序)

    热门讨论 2011-04-27 07:47:22
     实例98 这一天是星期几 125  实例99 大小写互换 127  实例100 输出指定范围的素数 128  实例101 我出现了几次 129  实例102 算术表达式求值器 129  实例103 字符串对齐调整器 137  实例104 字符串的...
  • 说明: 与 NLS_TIME_FORMAT 相似, 只不过它设置的 TIMESTAMP 数据类型的默认值, 该数据类型既存储YEAR, MONTH 和 DAY 这几个日期值, 也存储 HOUR, MINUTE 和 SECOND 这几个时间值。 语法: TIMESTAMP '1997-01-31 ...
  • javascript函数的解释

    2011-02-26 11:03:52
    dateObj.getMinutes()得到分, dateObj.getSeconds()得到秒,dateObj.setTime(value)设置时间,dateObj.setYear(val)设 置年,dateObj.setMonth(val)设置,dateObj.setDate(val)设置日,dateObj.setDay(val)设 置星期几,...
  • java范例开发大全源代码

    热门讨论 2011-10-30 23:31:51
     实例98 这一天是星期几 125  实例99 大小写互换 127  实例100 输出指定范围的素数 128  实例101 我出现了几次 129  实例102 算术表达式求值器 129  实例103 字符串对齐调整器 137  实例104 字符...
  • java范例开发大全

    2013-03-08 20:06:54
    实例98 这一天是星期几 125 实例99 大小写互换 127 实例100 输出指定范围的素数 128 实例101 我出现了几次 129 实例102 算术表达式求值器 129 实例103 字符串对齐调整器 137 实例104 字符串的加密 139 实例105 使用...
  • 用例6:计算存款达到5万元需要几个月(NPER) 源文件:光盘\源文件\02\02.xlsx 用例7:计算投资后的内部收益率(MIRR) 源文件:光盘\源文件\02\03.xlsx 用例8:计算不定期发生的内部收益率(XIRR) 源文件:...
  • 实例053 获取当前日期是星期几 86 实例054 获取当前年的天数 87 实例055 获取当前的天数 88 实例056 计算两日期时间间隔 90 2.7 C#语言高级应用 91 实例057 一无所有——细说可空类型 91 实例058 半壁江山——全角...
  • 实例053 获取当前日期是星期几 86 实例054 获取当前年的天数 87 实例055 获取当前的天数 88 实例056 计算两日期时间间隔 90 2.7 C#语言高级应用 91 实例057 一无所有——细说可空类型 91 实例058 半壁江山——全角...
  • 实例053 获取当前日期是星期几 86 实例054 获取当前年的天数 87 实例055 获取当前的天数 88 实例056 计算两日期时间间隔 90 2.7 C#语言高级应用 91 实例057 一无所有——细说可空类型 91 实例058 半壁江山——全角...
  • 实例057 获取当前日期是星期几 72 实例058 获取当前年的天数 73 实例059 获取当前的天数 74 实例060 取得当前日期的前一天 75 实例061 将日期格式化为指定格式 76 实例062 使用DateDiff方法获取日期时间 的间隔数 ...
  • Java范例开发大全(全书源程序)

    热门讨论 2013-04-05 11:50:26
    实例98 这一天是星期几 125 实例99 大小写互换 127 实例100 输出指定范围的素数 128 实例101 我出现了几次 129 实例102 算术表达式求值器 129 实例103 字符串对齐调整器 137 实例104 字符串的加密 139 实例...
  • 实例都经过笔者精心筛选的,具有很强的实用性,其中一些实例开发人员难于寻觅的解决方案。  本书适合Visual Basic的初学者,如高校学生、求职人员作为练习、速查、学习使用,也适合Visual Basic程序员参考...
  •  实例057 获取当前日期是星期几 72  实例058 获取当前年的天数 73  实例059 获取当前的天数 74  实例060 取得当前日期的前一天 75  实例061 将日期格式化为指定格式 76  实例062 使用DateDiff方法获取...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

下个月16号是星期几