2016-01-13 158 views
1

我創建批處理文件將%date%轉換爲朱利安日期,但我似乎沒有找到明確的信息來執行此操作。任何人都可以告訴我如何將%date%轉換爲Julian日期?或者任何已經存在的批處理文件?將日期轉換爲朱利安日期的批處理腳本

謝謝

+0

我敢肯定有一個批處理文件在網絡上將日期轉換爲您想要的任何格式。 – Squashman

+0

正如我在第一條評論中所說的。如果您搜索互聯網,您會發現已經爲您編寫的腳本! http://www.commandline.co.uk/cmdfuncs/dandt/ – Squashman

+0

如果您將鼠標懸停在Julian日期標籤上,它會顯示:「Julian日期」這個術語也指日期數字(更合適的是**公曆日期**),特別是在計算機編程,軍事和食品行業。 – Squashman

回答

2

編輯:修改後的原始代碼,只顯示Julian Day「Dow MM/DD/YYYY」格式的當前日期數量:

@echo off 
for /F "tokens=2-4 delims=/ " %%a in ("%date%") do (
    set /A "a=(%%a-14)/12, JDN=(1461*(%%c+4800+a))/4+(367*(%%a-2-12*a))/12-(3*((%%c+4900+a)/100))/4+%%b-32075" 
) 
echo %JDN% 

參考:http://www.hermetic.ch/cal_stud/jdn.htm#comp

第二。編輯

要獲得序天數的基礎上,天在一年(從1到366)的數量,使用此方法:

@echo off 
setlocal 

for /F "tokens=2-4 delims=/ " %%a in ("%date%") do (
    set /A "MM=1%%a-100, DD=1%%b-100, Ymod4=%%c%%4" 
) 
for /F "tokens=%MM%" %%m in ("0 31 59 90 120 151 181 212 243 273 304 334") do set /A Day=DD+%%m 
if %Ymod4% equ 0 if %MM% gtr 2 set /A Day+=1 

echo %Day% 
+0

當我運行該批處理時,它會返回一個缺失操作數錯誤。 – Hereok

+0

當然!這不是一個可用的批處理文件,而是兩個執行轉換過程的子例程。如果您想要一個_complete_批處理文件,那麼您首先會告訴我們您想要轉換的'%date%'的格式:MM/DD/YYYY,DD/MM/YYYY,還有其他什麼格式?日期是當前日期嗎?它是作爲參數給出的嗎?等等... – Aacini

+0

命令提示符中%date%格式的示例: > echo%date% > Wed 01/13/2016 – Hereok

1

隨着this這裏有一個julian.bat:

@if (@X)==(@Y) @end /* JScript comment 
    @echo off 

    cscript //E:JScript //nologo "%~f0" 

    exit /b %errorlevel% 

@if (@X)==(@Y) @end JScript comment */ 


Date.prototype.getJulian = function() { 
    return Math.floor((this/86400000) - (this.getTimezoneOffset()/1440) + 2440587.5); 
} 

var today = new Date(); //set any date 
var julian = today.getJulian(); //get Julian counterpart 
WScript.Echo(julian); 

而且它可以像使用:

for /f %%a in ('call julian.bat') do @set "julian=%%a" 
+0

你好,我試過這個腳本,結果是2457401我認爲這是不正確的。它回到013,這是今天的朱利安日期。任何想到爲什麼它返回2457401? – Hereok

+0

@Hereok我試過[this](http://www.onlineconversion.com/julian_date.htm)和[this](http://aa.usno.navy.mil/data/docs/JulianDate.php)並且在腳本中有更多,結果與這些一致 – npocmaka

相關問題