This repository has been archived by the owner on Mar 30, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmy_date.js
122 lines (110 loc) · 3.6 KB
/
my_date.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// Generated by CoffeeScript 1.10.0
(function() {
'use strict';
var TZO, dictionary_DayWeek, dictionary_Months, dictionary_TimeLessons, dictionary_ru_to_eng, endDay, getNumberLessonsWeek, startDay, startWeek, toDate;
dictionary_DayWeek = {
'0': 'Воскресенье',
'1': 'Понедельник',
'2': 'Вторник',
'3': 'Среда',
'4': 'Четверг',
'5': 'Пятница',
'6': 'Суббота'
};
dictionary_ru_to_eng = {
'января': 'jan',
'февраля': 'feb',
'марта': 'mar',
'апреля': 'apr',
'мая': 'may',
'июня': 'jun',
'июля': 'jul',
'августа': 'aug',
'сентября': 'sep',
'октября': 'oct',
'ноября': 'nov',
'декабря': 'dec'
};
dictionary_Months = {
'0': 'Января',
'1': 'Февраля',
'2': 'Марта',
'3': 'Апреля',
'4': 'Мая',
'5': 'Июня',
'6': 'Июля',
'7': 'Августа',
'8': 'Сентября',
'9': 'Октября',
'10': 'Ноября',
'11': 'Декабря'
};
dictionary_TimeLessons = {
'1': '8:30-10:00',
'2': '10:10-11:40',
'3': '11:50-13:20',
'4': '13:50-15:20',
'5': '15:30-17:00',
'6': '17:10-18:40'
};
startWeek = new Date(2016, 7, 28, 0, 0, 0);
startDay = new Date(2016, 8, 1, 0, 0, 0);
endDay = new Date(2017, 0, 31, 0, 0, 0);
TZO = (new Date().getTimezoneOffset() * -1) * 1000 * 60;
getNumberLessonsWeek = function(date, callback) {
var end, start;
if (isNaN(new Date(Date.parse(date)))) {
callback('Дата не верна. Введите дату в формате: день месяц год');
}
start = (startWeek.getTime()) + TZO;
end = (new Date(date).getTime()) + TZO;
return callback(null, Math.ceil(((end - start) / (1000 * 60 * 60 * 24)) / 7));
};
toDate = function(date, callback) {
var arr_date, code_week_fn, day_week, in_date, new_date;
if (typeof date !== 'object') {
arr_date = date.split(' ');
if (dictionary_ru_to_eng[arr_date[1]] !== void 0 && arr_date.length !== 1) {
date = arr_date[0] + ' ' + dictionary_ru_to_eng[arr_date[1]] + ' ' + arr_date[2];
}
if (arr_date[2] === void 0 && arr_date.length !== 1) {
if (dictionary_ru_to_eng[arr_date[1]] !== void 0 && arr_date.length !== 1) {
date = arr_date[0] + ' ' + dictionary_ru_to_eng[arr_date[1]] + ' 2016';
} else {
date = arr_date[0] + ' ' + arr_date[1] + ' 2016';
}
}
}
if (isNaN(new Date(Date.parse(date)))) {
callback('Дата не верна. Введите дату в формате: день месяц год');
}
in_date = new Date(date).getTime();
if (in_date <= startDay.getTime() || in_date >= endDay.getTime()) {
callback('Дата не входит в учебный семестр. Введите дату в формате: день месяц год');
}
new_date = new Date(new Date(in_date).getTime());
day_week = new_date.getDay();
code_week_fn = getNumberLessonsWeek(new_date, function(err, data) {
if (err) {
throw err;
}
if (day_week === 0) {
return data - 1;
}
return data;
});
return callback(null, {
newDate: new_date,
dayWeek: day_week,
codeWeek: code_week_fn,
evenWeek: code_week_fn % 2
});
};
module.exports = {
int_week: getNumberLessonsWeek,
dic_date: dictionary_DayWeek,
dic_month: dictionary_Months,
dic_timeLessons: dictionary_TimeLessons,
to_date: toDate
};
}).call(this);