const WeatherUtils = {
    formatDatetimeLocal(date) {
        const offsetMinutes = date.getTimezoneOffset();
        const local = new Date(date.getTime() - offsetMinutes * 60 * 1000);
        return local.toISOString().slice(0, 16);
    },

    initializeDateInputs() {
        const now = new Date();
        const startDate = new Date(now.getTime() - 24 * 60 * 60 * 1000);
        const endDate = new Date(now.getTime() + 3 * 60 * 60 * 1000);

        const startDateInput = document.getElementById('startDate');
        const endDateInput = document.getElementById('endDate');

        if (startDateInput) {
            startDateInput.value = this.formatDatetimeLocal(startDate);
        }
        if (endDateInput) {
            endDateInput.value = this.formatDatetimeLocal(endDate);
        }
    },

    isDeviceOnline(lastUpdate) {
        if (!lastUpdate) return false;
        const lastUpdateTime = new Date(lastUpdate);
        const now = new Date();
        const diffMinutes = (now - lastUpdateTime) / (1000 * 60);
        return diffMinutes <= 5;
    },

    decimalToHex(decimal) {
        const num = parseInt(decimal);
        if (isNaN(num)) return '';
        return num.toString(16).toUpperCase().padStart(6, '0');
    },

    hexToDecimal(hex) {
        const num = parseInt(hex, 16);
        if (isNaN(num)) return '';
        return num.toString();
    }
};

window.WeatherUtils = WeatherUtils; 