【问题标题】:Method to convert a MM/DD/YYYY into YYYYDD (julian day)将 MM/DD/YYYY 转换为 YYYYDD(儒略日)的方法
【发布时间】:2014-11-21 02:57:54
【问题描述】:

有什么方法可以将 mm/dd/yyyy(我的电脑日期)在批处理中转换为 yyyydd(儒略日)?

【问题讨论】:

    标签: windows datetime batch-file datetime-conversion julian-date


    【解决方案1】:
    @ECHO OFF
    SETLOCAL
    FOR %%y IN (2000 2001 2012 2013 2014 2015 2016) DO (
     FOR %%d IN (
      01/01/%%y 02/01/%%y 02/28/%%y 02/29/%%y 03/01/%%y 04/01/%%y 05/01/%%y
      06/01/%%y 07/01/%%y 08/01/%%y 09/01/%%y 10/01/%%y 11/01/%%y 12/01/%%y 12/31/%%y
               ) DO CALL :julian %%d
     )
    
    GOTO :EOF
    
    :julian
    SET jdate=%1
    SET /a yyyy=%jdate:~-4%&SET /a mm=1%jdate:~0,2%&SET jdate=%jdate:~-4%0%jdate:~3,2%
    SET /a yyyy=yyyy %% 4
    IF %yyyy% equ 0 IF %mm% gtr 102 SET /a jdate +=1
    FOR %%a IN (02:31 03:28 04:31 05:30 06:31 07:30 08:31 09:31 10:30 11:31 12:30) DO (
     FOR /f "tokens=1,2delims=:" %%b IN ("%%a") DO IF "1%%b" leq "%mm%" SET /a jdate+=%%c
    )
    ECHO %1 becomes %jdate%
    GOTO :eof
    

    此例程的第一部分只是生成日期,包括选定年份的重要日期。

    :julian 例程实际上进行了转换,已从主例程传递了 mm/dd/yyyy 日期。

    为我工作!

    【讨论】:

    • 我真的需要指定年份和日期吗?自动设置怎么样?其中今年为闰年,今年为平年(如2000、2004、2008等为闰年,2001-2003、2005-2007、2009-2011等)与天相同。
    • for...%%y...%%d... 循环只是为:julian 例程提供一组日期,以证明例程有效。您在程序中需要做的就是call :julian %whatever%,其中whatever 包含您的日期,格式为mm/dd/yyyy,返回的jdate 将包含转换后的值。
    猜你喜欢
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多