用枚举创建时间转换器的最佳方法

时间:2018-10-30 10:35:09

标签: javascript enums

我对创建时间转换器有些怀疑。 我创建了Time wich类,可以将时间转换为毫秒,秒, 分钟,小时和天。尽管我很容易做到,但是我不确定我的代码是 清洁。实际上,我创建了枚举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;
	}
}

0 个答案:

没有答案