115 lines
2.9 KiB
JavaScript
115 lines
2.9 KiB
JavaScript
|
import {ref} from 'vue'
|
||
|
export function formatDate(date) {
|
||
|
var d = new Date(date),
|
||
|
month = '' + (d.getMonth() + 1),
|
||
|
day = '' + d.getDate(),
|
||
|
year = d.getFullYear();
|
||
|
|
||
|
if (month.length < 2)
|
||
|
month = '0' + month;
|
||
|
if (day.length < 2)
|
||
|
day = '0' + day;
|
||
|
|
||
|
return [day, month, year].join('-');
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
export function durationCourse(element){
|
||
|
const hour = element.end.substring(3,5) -element.start.substring(3,5);
|
||
|
|
||
|
|
||
|
return (element.end - element.start)%2;
|
||
|
}
|
||
|
|
||
|
export function sortByDate(a, b) {
|
||
|
const nameA = a.start; // ignore upper and lowercase
|
||
|
const nameB = b.start; // ignore upper and lowercase
|
||
|
|
||
|
if (nameA < nameB) {
|
||
|
return -1;
|
||
|
}
|
||
|
if (nameA > nameB) {
|
||
|
return 1;
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
export function getFirstDay(d){
|
||
|
var date = new Date(d);
|
||
|
return new Date(date.getFullYear(), date.getMonth(), 1);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
export function matrixFromList(list,weekMonday){
|
||
|
const weekStart = new Date(weekMonday);
|
||
|
const matrix = new Array(7);
|
||
|
for (let i = 0; i < matrix.length; i++) {
|
||
|
matrix[i] = [];
|
||
|
}
|
||
|
for(let key in list){
|
||
|
const temp = list[key];
|
||
|
const day = new Date(list[key].start);
|
||
|
if((((day.getTime()-weekStart.getTime())/60000)<10080) && (((day.getTime()-weekStart.getTime())/60000)>0)){
|
||
|
matrix[day.getDay()].push(temp);
|
||
|
matrix[day.getDay()].sort((a,b) => sortByDate(a,b));
|
||
|
}
|
||
|
}
|
||
|
return matrix;
|
||
|
}
|
||
|
|
||
|
export function lastDateOfMonth(d){
|
||
|
const date = new Date(d);
|
||
|
const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
||
|
return temp.getDate();
|
||
|
}
|
||
|
|
||
|
export function monthFromList(list,month){
|
||
|
const beginning = getFirstDay(month);
|
||
|
const matrix = new Array(lastDateOfMonth(month))
|
||
|
for (let i = 0; i < matrix.length; i++) {
|
||
|
matrix[i] = [];
|
||
|
|
||
|
}
|
||
|
for(let key in list){
|
||
|
const temp = list[key];
|
||
|
const day = new Date(list[key].start);
|
||
|
if(day.getMonth()==month){
|
||
|
matrix[day.getDate()].push(temp);
|
||
|
matrix[day.getDay()].sort((a,b) => sortByDate(a,b));
|
||
|
}}
|
||
|
|
||
|
|
||
|
return matrix;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
export function sundayToTheEnd(list){
|
||
|
const newlist = list;
|
||
|
const sunday = newlist.shift();
|
||
|
newlist.push(sunday);
|
||
|
return newlist;
|
||
|
}
|
||
|
|
||
|
export function getDifferenceTime(date1,date2){
|
||
|
return Math.abs((new Date(date2).getTime() - new Date(date1).getTime())/60000);
|
||
|
}
|
||
|
|
||
|
export function getMarginTop(list, index1, index2){
|
||
|
if(index2 < 0){
|
||
|
const temp = new Date(list[index1].start);
|
||
|
temp.setHours(8,0,0);
|
||
|
return Math.abs((new Date(list[index1].start).getTime()- temp.getTime())/60000);
|
||
|
}
|
||
|
return Math.abs((new Date(list[index1].start).getTime()- new Date(list[index2].end).getTime())/60000)+getMarginTop(list,index2,index2-1);
|
||
|
}
|
||
|
|
||
|
export function getHoursMinutes(date){
|
||
|
const d = new Date(date);
|
||
|
return d.getHours()+ ":" + d.getMinutes();
|
||
|
}
|
||
|
|