Лучший способ создать конвертер времени с перечислением - PullRequest
0 голосов
/ 30 октября 2018

У меня есть некоторые сомнения по поводу создания конвертера времени. Я создал класс Time, который может конвертировать время в миллисекундах, секундах, минуты, часы и дни. Хотя я сделал это легко, я не уверен, что мой код чистый. На самом деле, я создал перечисление DurationType, и каждый элемент содержит продукт, который позволяет конвертировать его в миллисекундах. Это позволяет мне иметь код из 30 строк, но, к примеру, странно умножать значение на DurationType.HOUR.

"use strict";

const DurationType = {
DAY: 24*60*60*1000,
HOUR: 60*60*1000,
MINUTE: 60*1000,
SECOND:1000,
MILLISECOND: 1
}

"use strict";

class Time {
	constructor(value, type=DurationType.MILLISECOND) {
		this.setValue(value, type);
	}

	getValueIn(type=DurationType.MILLISECOND) {
		return convertTo(this.value, DurationType.MILLISECOND, type);
	}

	setValue(value, type) {
		this.value = Time.convertTo(value, type, DurationType.MILLISECOND);
	}

	static convertTo(value, type, wantedType) {
		if(!(wantedType instanceof DurationType))
			return error("wantedType isn't an instance of DurationType", 1); // display the error message and return 1
		return value*type/wantedType;
	}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...