mirror of
https://github.com/actions/setup-dotnet.git
synced 2024-11-26 21:33:05 +07:00
140 lines
3.1 KiB
JavaScript
140 lines
3.1 KiB
JavaScript
|
var monthInitials = ["J","F","M","A","m","j","U","a","S","O","N","D"];
|
||
|
|
||
|
var initials = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
|
||
|
var timeZone = [
|
||
|
12*60,
|
||
|
11*60,
|
||
|
10*60,
|
||
|
9.5*60,
|
||
|
9*60,
|
||
|
8*60,
|
||
|
7*60,
|
||
|
6*60,
|
||
|
5*60,
|
||
|
4*60,
|
||
|
3.5*60,
|
||
|
3*60,
|
||
|
2*60,
|
||
|
1*60,
|
||
|
0*60,
|
||
|
-1*60,
|
||
|
-2*60,
|
||
|
-3*60,
|
||
|
-3.5*60,
|
||
|
-4*60,
|
||
|
-4.5*60,
|
||
|
-5*60,
|
||
|
-5.5*60,
|
||
|
-5.75*60,
|
||
|
-6*60,
|
||
|
-6.5*60,
|
||
|
-7*60,
|
||
|
-8*60,
|
||
|
-8.5*60,
|
||
|
-8.75*60,
|
||
|
-9*60,
|
||
|
-9.5*60,
|
||
|
-10*60,
|
||
|
-10.5*60,
|
||
|
-11*60,
|
||
|
-12*60,
|
||
|
-12.75*60,
|
||
|
-13*60,
|
||
|
-14*60
|
||
|
];
|
||
|
|
||
|
function parseToUTC(dtObj, includeDate, includeCentury, includeTime){
|
||
|
if(typeof dtObj === "string"){
|
||
|
dtObj = new Date(dtObj);
|
||
|
}
|
||
|
var dtStr = "";
|
||
|
if(includeCentury){
|
||
|
dtStr += char(Math.floor(dtObj.getUTCFullYear()/100)) ;
|
||
|
}
|
||
|
if(includeDate){//3
|
||
|
//year
|
||
|
dtStr += char(dtObj.getUTCFullYear()%100);
|
||
|
//month
|
||
|
dtStr += monthInitials[dtObj.getUTCMonth()];
|
||
|
//date
|
||
|
dtStr += initials[dtObj.getUTCDate()]
|
||
|
}
|
||
|
|
||
|
if(includeTime){//5
|
||
|
//h
|
||
|
dtStr += initials[dtObj.getUTCHours()]
|
||
|
//m
|
||
|
dtStr += initials[dtObj.getUTCMinutes()];
|
||
|
//s
|
||
|
dtStr += initials[dtObj.getUTCSeconds()];
|
||
|
//ms
|
||
|
var ms = dtObj.getUTCMilliseconds();
|
||
|
dtStr += char(Math.floor(ms/10)) ;
|
||
|
dtStr += char(ms%10) ;
|
||
|
}
|
||
|
|
||
|
//zone
|
||
|
//if(includeZone){//1
|
||
|
dtStr += initials[timeZone.indexOf(dtObj.getTimezoneOffset() ) ]
|
||
|
//}
|
||
|
return dtStr;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @param {*} dtStr
|
||
|
* @param {*} includeDate
|
||
|
* @param {*} includeCentury
|
||
|
* @param {*} includeTime
|
||
|
* @param {*} includeZone
|
||
|
*/
|
||
|
function parseBackUTC(dtStr,includeDate, includeCentury, includeTime){
|
||
|
|
||
|
var century = 0;
|
||
|
var startFrom = 0;
|
||
|
var Y = 0, M = 0, D = 0, h = 0, m = 0, s = 0, ms = 0, z = 0;
|
||
|
if(includeCentury){//1st digit is century
|
||
|
century = 100 * ascii(dtStr[startFrom++]);
|
||
|
}
|
||
|
|
||
|
if(includeDate){
|
||
|
Y = century + ascii(dtStr[startFrom++]);
|
||
|
M = monthInitials.indexOf(dtStr[startFrom++]);
|
||
|
D = initials.indexOf(dtStr[startFrom++])
|
||
|
//startFrom += 3;
|
||
|
}
|
||
|
|
||
|
if(includeTime){
|
||
|
h = initials.indexOf(dtStr[startFrom++]);
|
||
|
m = initials.indexOf(dtStr[startFrom++]);
|
||
|
s = initials.indexOf(dtStr[startFrom++]);
|
||
|
|
||
|
ms = ascii(dtStr[startFrom++])*10 + ascii(dtStr[startFrom++]);
|
||
|
//startFrom += 5;
|
||
|
}
|
||
|
var dt = new Date(Y,M,D,h,m,s,ms);
|
||
|
//if(includeZone){
|
||
|
z = timeZone[initials.indexOf(dtStr[startFrom])];
|
||
|
dt.setTime(dt.getTime() - z*60*1000);
|
||
|
//}
|
||
|
|
||
|
return dt;
|
||
|
}
|
||
|
|
||
|
|
||
|
function ascii(ch){
|
||
|
return ch.charCodeAt(0);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* converts a ASCII number into equivalant ASCII char
|
||
|
* @param {number} a
|
||
|
* @returns ASCII char
|
||
|
*/
|
||
|
var char = function (a){
|
||
|
return String.fromCharCode(a);
|
||
|
}
|
||
|
|
||
|
exports.parse = parseToUTC;
|
||
|
exports.parseBack = parseBackUTC;
|