Files
Backend-Api/ServiceHost/wwwroot/AdminTheme/assets/js/dateCompute.js
2024-07-05 21:36:15 +03:30

318 lines
11 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
$('#dateStart').on('change', function () {
DateComputing();
});
function DateComputing() {
var
persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],
arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],
fixNumbers = function (str) {
if (typeof str === 'string') {
for (var i = 0; i < 10; i++) {
str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);
}
}
return str;
};
let getdate = document.getElementById('dateStart').value;
var result;
var m1, m2;
var y1, y2, y3, y4;
var d1, d2;
for (var i = 0; i < getdate.length; i++) {
if (i === 0) {
y1 = fixNumbers(getdate[i]);
}
if (i === 1) {
y2 = fixNumbers(getdate[i]);
}
if (i === 2) {
y3 = fixNumbers(getdate[i]);
}
if (i === 3) {
y4 = fixNumbers(getdate[i]);
}
if (i === 5) {
m1 = fixNumbers(getdate[i]);
}
if (i === 6) {
m2 = fixNumbers(getdate[i]);
}
if (i === 8) {
d1 = fixNumbers(getdate[i]);
}
if (i === 9) {
d2 = fixNumbers(getdate[i]);
}
}
var yRes = y1 + y2 + y3 + y4;
var year = parseInt(yRes);
var mRes = m1 + m2;
var month = parseInt(mRes);
var dRes = d1 + d2;
var day = parseInt(dRes);
if (year >= 1397) {
if (month < 7) {
result = yRes + "/" + mRes + "/31";
}
if (month >= 7 && month < 12) {
result = yRes + "/" + mRes + "/30";
}
if (month === 12) {
switch (year) {
case 1346: result = yRes + "/" + mRes + "/30";
break;
case 1350: result = yRes + "/" + mRes + "/30";
break;
case 1354: result = yRes + "/" + mRes + "/30";
break;
case 1358: result = yRes + "/" + mRes + "/30";
break;
case 1362: result = yRes + "/" + mRes + "/30";
break;
case 1366: result = yRes + "/" + mRes + "/30";
break;
case 1370: result = yRes + "/" + mRes + "/30";
break;
case 1375: result = yRes + "/" + mRes + "/30";
break;
case 1379: result = yRes + "/" + mRes + "/30";
break;
case 1383: result = yRes + "/" + mRes + "/30";
break;
case 1387: result = yRes + "/" + mRes + "/30";
break;
case 1391: result = yRes + "/" + mRes + "/30";
break;
case 1395: result = yRes + "/" + mRes + "/30";
break;
case 1399: result = yRes + "/" + mRes + "/30";
break;
case 1403: result = yRes + "/" + mRes + "/30";
break;
case 1408: result = yRes + "/" + mRes + "/30";
break;
case 1412: result = yRes + "/" + mRes + "/30";
break;
case 1416: result = yRes + "/" + mRes + "/30";
break;
case 1420: result = yRes + "/" + mRes + "/30";
break;
case 1424: result = yRes + "/" + mRes + "/30";
break;
case 1428: result = yRes + "/" + mRes + "/30";
break;
case 1432: result = yRes + "/" + mRes + "/30";
break;
case 1436: result = yRes + "/" + mRes + "/30";
break;
case 1441: result = yRes + "/" + mRes + "/30";
break;
case 1445: result = yRes + "/" + mRes + "/30";
break;
default: result = yRes + "/" + mRes + "/29";
}
}
} else {
switch (year) {
case 1346: result = yRes + "/" + "12" + "/30";
break;
case 1350: result = yRes + "/" + "12" + "/30";
break;
case 1354: result = yRes + "/" + "12" + "/30";
break;
case 1358: result = yRes + "/" + "12" + "/30";
break;
case 1362: result = yRes + "/" + "12" + "/30";
break;
case 1366: result = yRes + "/" + "12" + "/30";
break;
case 1370: result = yRes + "/" + "12" + "/30";
break;
case 1375: result = yRes + "/" + "12" + "/30";
break;
case 1379: result = yRes + "/" + "12" + "/30";
break;
case 1383: result = yRes + "/" + "12" + "/30";
break;
case 1387: result = yRes + "/" + "12" + "/30";
break;
case 1391: result = yRes + "/" + "12" + "/30";
break;
case 1395: result = yRes + "/" + "12" + "/30";
break;
case 1399: result = yRes + "/" + "12" + "/30";
break;
case 1403: result = yRes + "/" + "12" + "/30";
break;
case 1408: result = yRes + "/" + "12" + "/30";
break;
case 1412: result = yRes + "/" + "12" + "/30";
break;
case 1416: result = yRes + "/" + "12" + "/30";
break;
case 1420: result = yRes + "/" + "12" + "/30";
break;
case 1424: result = yRes + "/" + "12" + "/30";
break;
case 1428: result = yRes + "/" + "12" + "/30";
break;
case 1432: result = yRes + "/" + "12" + "/30";
break;
case 1436: result = yRes + "/" + "12" + "/30";
break;
case 1441: result = yRes + "/" + "12" + "/30";
break;
case 1445: result = yRes + "/" + "12" + "/30";
break;
default: result = yRes + "/" + "12" + "/29";
}
}
var endDateRes = result;
document.getElementById('endDate').value = result;
document.getElementById('setContract').value = getdate;
/////////////////////////////toGorgianDate/////////////////////////////////////
//JalaliDate = {
// g_days_in_month: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
// j_days_in_month: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29]
//};
//JalaliDate.jalaliToGregorian = function (j_y, j_m, j_d) {
// j_y = parseInt(j_y);
// j_m = parseInt(j_m);
// j_d = parseInt(j_d);
// var jy = j_y - 979;
// var jm = j_m - 1;
// var jd = j_d - 1;
// var j_day_no = 365 * jy + parseInt(jy / 33) * 8 + parseInt((jy % 33 + 3) / 4);
// for (var i = 0; i < jm; ++i) j_day_no += JalaliDate.j_days_in_month[i];
// j_day_no += jd;
// var g_day_no = j_day_no + 79;
// var gy = 1600 + 400 * parseInt(g_day_no / 146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
// g_day_no = g_day_no % 146097;
// var leap = true;
// if (g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */ {
// g_day_no--;
// gy += 100 * parseInt(g_day_no / 36524); /* 36524 = 365*100 + 100/4 - 100/100 */
// g_day_no = g_day_no % 36524;
// if (g_day_no >= 365) g_day_no++;
// else leap = false;
// }
// gy += 4 * parseInt(g_day_no / 1461); /* 1461 = 365*4 + 4/4 */
// g_day_no %= 1461;
// if (g_day_no >= 366) {
// leap = false;
// g_day_no--;
// gy += parseInt(g_day_no / 365);
// g_day_no = g_day_no % 365;
// }
// for (var i = 0; g_day_no >= JalaliDate.g_days_in_month[i] + (i == 1 && leap); i++)
// g_day_no -= JalaliDate.g_days_in_month[i] + (i == 1 && leap);
// var gm = i + 1;
// var gd = g_day_no + 1;
// gm = gm < 10 ? "0" + gm : gm;
// gd = gd < 10 ? "0" + gd : gd;
// return [gy, gm, gd];
//}
//var stdate = yRes + "/" + mRes + "/" + dRes;
//dateSplitted = stdate.split("/"),
// jD = JalaliDate.jalaliToGregorian(dateSplitted[0], dateSplitted[1], dateSplitted[2]);
//startResult = jD[0] + "-" + jD[1] + "-" + jD[2];
//var endate = endDateRes;
//dateSplitted = endate.split("/"),
// jD = JalaliDate.jalaliToGregorian(dateSplitted[0], dateSplitted[1], dateSplitted[2]);
//endtResult = jD[0] + "-" + jD[1] + "-" + jD[2];
//document.getElementById('testDate').innerHTML = "start : " + startResult;
//document.getElementById('endDateTest').innerHTML = "end : " + endtResult;
//let startdateSet = new Date(startResult);
//let finishDateSet = new Date(endtResult);
//var dayMilliseconds = 1000 * 60 * 60 * 24;
//let sundayCount = 0;
//let mondayCount = 0;
//let tuesdayCount = 0;
//let wednesdayCount = 0;
//let thursdayCount = 0;
//let fridayCount = 0;
//let saturdayCount = 0;
//while (startdateSet <= finishDateSet) {
// let days = startdateSet.getDay()
// if (days == 0) {
// sundayCount++;
// }
// if (days == 1) {
// mondayCount++;
// }
// if (days == 2) {
// tuesdayCount++;
// }
// if (days == 3) {
// wednesdayCount++;
// }
// if (days == 4) {
// thursdayCount++;
// }
// if (days == 5) {
// fridayCount++;
// }
// if (days == 6) {
// saturdayCount++;
// }
// startdateSet = new Date(+startdateSet + dayMilliseconds);
//}
//document.getElementById('sunday').innerHTML = "sundays : " + sundayCount;
//document.getElementById('monday').innerHTML = "monday : " + mondayCount;
//document.getElementById('tuseday').innerHTML = "tuesday : " + tuesdayCount;
//document.getElementById('wednesday').innerHTML = "wednesday : " + wednesdayCount;
//document.getElementById('thursday').innerHTML = "thursday : " + thursdayCount;
//document.getElementById('friday').innerHTML = "friday : " + fridayCount;
//document.getElementById('sturday').innerHTML = "saturday : " + saturdayCount;
}
//document.getElementById('dateStart').addEventListener('click', function() {
// DateComputing();
//});
document.querySelector('#dateStart').addEventListener('keypress', function(e) {
if (e.key === 'Enter' || e.key === 'Tab') {
DateComputing();
}
});
//document.getElementById('endDate').addEventListener('change', function () {
// DateComputing();
//});