您的位置:首页 > 其它

使用CMD批处理程序在每月最后一个工作日关闭程序

2013-02-26 18:06 405 查看
::在每个月的最后一个工作日自动停止程序,在每个月第一个天自动启动程序

::Author: Bruce.wan

::核心算法:

::  1.根据系统当前之间,获取当前月份

::  2.根据月份计算出当月的最后一天,遇到闰年2月份最后一天为29.

::  3.判断当月的倒数第三天是否是星期五,如果是则需要停止程序。例如2012-09-28。

::  4.判断当月的倒数第二天是否是星期五,如果是则需要停止程序。例如2012-06-29。

::  5.当月的最后一天停止程序。

::  6.当月的第一天启动程序。

::

@echo off

::初始化参数

set stop=N

set start=N

::获取月

set m=%date:~5,2%

::获取日

set d=%date:~8,2%

::获取星期

set w=%date:~11,4%

::获取年

set x=%date:~0,4%

::判断是否闰年

set /a y=%x%*10/4

set m2=%y:~-1,1%

::计算最后一天

set ld=28

if %m2%==0 set ld=29

for %%i in (01 03 05 07 08 10 12) do (if %m%==%%i set ld=31)

for %%i in (04 06 09 11) do (if %m%==%%i set ld=30)

::计算是本月倒数第几天

set /a c=(%ld%-%d%)+1

::判断当月倒数第三天

if %c%==3 (

 rem echo 今天是倒数第3天

 ::判断是否是周五

 if %w% == 周五 (

  rem echo 现在是工作日

  set stop=Y

 )

)

::判断当月倒数第二天

if %c%==2 (

 rem echo 今天是倒数第2天

 :: 判断是否是周五

 if %w% == 周五 (

  rem echo 现在是工作日

  set stop=Y

 )

)

::当月最后一天,停止程序

if %c%==1 (

 set stop=Y

)

::当月第一天,启动程序

if %d%==01 (

 set start=Y

)

echo 今天是:%date%

echo 本月最后天是:%ld%日

echo 本月最后天是:%m%月%d%日

echo 现在是:%w%

echo 距离月底还有:%c%天

echo 是否停止程序:%stop%

echo 是否启动程序:%start%

pause
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐