我已经创建了一个用于计算日期的脚本,但我无法从用户那里获得正确的输入。我已创建了一个用于分隔输入的脚本。
让我们说用户输入 / ban myth 1d
[剧本已经知道" 1d"是一个论点]
我希望脚本能够创建一个名为time的变量,其中in具有用户输入的时间[天]。 所以,如果时间是" 1d" %time%等于1
或者如果用户键入" 1m" %time%等于30。 其他例子是:
2m=60
1w=7
2w=14
1y=365
任何想法?
计算时间会很酷,但只有在你想要的时候。
答案 0 :(得分:0)
这是一个纯粹的批处理解决方案:
rem save the second parameter to a variable so we can get the bits
set _timeSpec=%2
rem get the last character of the timespec == period
set _period=%_timeSpec:~-1%
rem get the number of periods - all but the last character (to cope with 2 digits)
set _numPeriods=%_timeSpec:~0,-1%
set _time=0
if "%_period%"=="d" set /A _time=%_numPeriods%
if "%_period%"=="w" set /A _time=%_numPeriods% * 7
if "%_period%"=="m" set /A _time=%_numPeriods% * 30
if "%_period%"=="y" set /A _time=%_numPeriods% * 365
echo %_time%
如果你把某些东西放进去,它不会识别,例如15z它只会落空而%_time%仍然为零,所以你也应该为此考试。
更新:它区分大小写,因此您可能还想为每个
添加大写选项if "%_period%"=="W" set /A _time=%_numPeriods% * 7
答案 1 :(得分:-1)
我真的很喜欢python。以下是输入开始日期,开始时间和持续时间以及计算结束日期和结束时间的方法。
from datetime import datetime,timedelta
da = raw_input("Start Date [MM_DD_YY]: ")
st = raw_input("Start Time [HH:MM]: ")
id = raw_input("Impact Duration [HH:MM]: ")
startdate = datetime(int('20'+da.split('_')[2]),int(da.split('_')[0]),int(da.split('_')[1]),int(st.split(':')[0]),int(st.split(':')[1]))
enddate = startdate + timedelta(hours=int(id.split(':')[0]),minutes=int(id.split(':')[1]))
startdate_str = str(startdate.month)+'/'+str(startdate.day)+'/'+str(startdate.year)
starttime_str = format( startdate , '%H:%M:%S')
endtime_str = format( enddate , '%H:%M:%S')
enddate_str = str(enddate.month)+'/'+str(enddate.day)+'/'+str(enddate.year)