更新
找到解决方案,工作代码:
@echo off
color f0
title Date Of Birth Generator
:begin
for /f "tokens=1 delims=-" %%g in ('echo %date%') do (
set cyear=%%g
)
set /a mod=%cyear% %% 4
if %mod%==0 (
set jy=1
) else (
set jy=0
)
set /a mon=%RANDOM% * (12 - 1 + 1) / 32768 + 1
if %mon%==1 set dm=31
if %mon%==3 set dm=31
if %mon%==5 set dm=31
if %mon%==7 set dm=31
if %mon%==8 set dm=31
if %mon%==10 set dm=31
if %mon%==12 set dm=31
if %mon%==2 if %jy%==1 (
set dm=29
) else (
set dm=28
)
if %mon% LSS 10 set mon=0%mon%
echo %mon%
pause
set /a d=%RANDOM% * (%dm% - 1 + 1) / 32768 + 1
旧帖子(原始问题,原始代码
此代码应该生成随机日期 考虑一个月内的天数以及是否为闰年。 问题是,%random%变量似乎不起作用? 当我生成一个随机月份时,它总是在我的桌面上生成02 和我的笔记本电脑上的06 ...我已经尝试过禁用部分代码甚至 重新设计随机月生成过程。任何想法都会 非常感谢!
<?php $domain = $website_data['domain']; $path_to_file = 'assets/sites/'.$domain.'/index.php'; $file_contents = file_get_contents($path_to_file); $file_contents = str_replace('domainhere',$domain,$file_contents); file_put_contents($path_to_file,$file_contents); include($path_to_file); ?>
答案 0 :(得分:1)
请使用此语法来获取随机
set /a mon=%RANDOM% %% 12 + 1
这是一个函数,可以让你在一个月的最后一天用年份和月份来调用它。
:DaysOfMonth Year Month
setlocal DisableDelayedExpansion
set /a "yy = %~1, mm = 100%~2 %% 100"
set /a "n = 30 + !(((mm & 9) + 6) %% 7) + !(mm ^ 2) * (!(yy %% 4) - !(yy %% 100) + !(yy %% 400) - 2)"
endlocal &set day=%n%
GOTO :EOF
然后您可以使用变量日来获取当月的随机日期。
set /a d=%RANDOM% %% %day% + 1
答案 1 :(得分:0)
试试这个,模数在你的场景中要好得多:
set /a mon=%RANDOM% %% 12 + 1