<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Paragleitzeit</title>
    <link>https://paragleitzeit.de/posts/</link>
    <description>Recent content in Posts on Paragleitzeit</description>
    <generator>Hugo</generator>
    <language>de-de</language>
    <lastBuildDate>Wed, 06 May 2026 12:29:49 +0200</lastBuildDate>
    <atom:link href="https://paragleitzeit.de/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Bergbahnen Saisonstatus</title>
      <link>https://paragleitzeit.de/posts/bergbahnen_saisonstatus/</link>
      <pubDate>Wed, 06 May 2026 12:29:49 +0200</pubDate>
      <guid>https://paragleitzeit.de/posts/bergbahnen_saisonstatus/</guid>
      <description>&lt;p&gt;ℹ️ Zuletzt aktualisiert am 06.05.2026.&lt;/p&gt;
&lt;p&gt;⚠️ Die Farben der Anzeige haben nichts mit dem tatsächlichen Fahrbetrieb der Bergbahn zu tun! Bitte überprüft selbständig die aktuellen Öffnungszeiten auf der Webseite der Bahn.
&lt;strong&gt;Alle Angaben ohne Gewähr!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;💡 Du hast Ideen, Verbesserungsvorschläge oder aktuellere Saison-Daten? Gerne per E-Mail an: &lt;a href=&#34;mailto:kontakt@paragleitzeit.de&#34;&gt;kontakt@paragleitzeit.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Verlinkungen auf externe Webseiten sind mit einem ^ markiert.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;kartenübersicht&#34;&gt;Kartenübersicht&lt;/h3&gt;
&lt;p&gt;&lt;script&gt;

    
    var test = &#34;&#34;;
    

    
    const MARKER_IDS = {};

    
    const now = new Date().getTime();
    const nowDate = new Date();

    
    
    
    
    
    
    
    
    
    
    
    
    

    function formatDate(dateString) {
        
        const date = new Date(dateString);

        
        const weekdays = [&#34;Sonntag&#34;, &#34;Montag&#34;, &#34;Dienstag&#34;, &#34;Mittwoch&#34;, &#34;Donnerstag&#34;, &#34;Freitag&#34;, &#34;Samstag&#34;];
        const months = [&#34;Januar&#34;, &#34;Februar&#34;, &#34;März&#34;, &#34;April&#34;, &#34;Mai&#34;, &#34;Juni&#34;, &#34;Juli&#34;, &#34;August&#34;, &#34;September&#34;, &#34;Oktober&#34;, &#34;November&#34;, &#34;Dezember&#34;];

        const weekday = weekdays[date.getDay()];
        const day = date.getDate();
        const month = months[date.getMonth()];
        const year = date.getFullYear();
        const hours = String(date.getHours()).padStart(2, &#39;0&#39;);
        const minutes = String(date.getMinutes()).padStart(2, &#39;0&#39;);

        return `${weekday}, ${day}. ${month} ${year}, ${hours}:${minutes} Uhr`;
    }

    
    
    
    
    
    
    
    
    
    
    
    
    

    function findNextDate(...dates) {
        
        const dateObjects = dates.map(date =&gt; new Date(date));

        
        const now = new Date();

        
        const futureDates = dateObjects.filter(date =&gt; date &gt; now);

        
        if (futureDates.length &gt; 0) {
            const nextDate = new Date(Math.min.apply(null, futureDates));
            return nextDate;
        } else {
            return null; 
        }      
    }

    function findNextLabeledDate(labeledDates) {
        
        const dateObjects = labeledDates.map(labeledDate =&gt; ({
            date: new Date(labeledDate.date),
            label: labeledDate.label
        }));

        
        const now = new Date();

        
        const futureDates = dateObjects.filter(dateObj =&gt; dateObj.date &gt; now);

        
        if (futureDates.length &gt; 0) {
            
            futureDates.sort((a, b) =&gt; a.date - b.date);

            
            return futureDates[0].label;
        } else {
            return null; 
        }
    }   


    
    
    
    
    
    
    
    
    
    
    
    
    


    function daysUntilDate(dateString) {
        
        const now = new Date();
        
        now.setHours(0, 0, 0, 0);

        
        const targetDate = new Date(dateString);
        
        targetDate.setHours(0, 0, 0, 0);

        
        const distance = targetDate - now;

        
        if (distance &lt; 0) {
            return &#34;&#34;;
        }

        
        const days = Math.floor(distance / (1000 * 60 * 60 * 24));

        return days;
    }


    function hoursMinutesUntilTime(dateString) {
        
        const now = new Date();

        
        const targetDate = new Date(dateString);

        
        const distance = targetDate - now;

        
        if (distance &lt; 0) {
            return &#34;&#34;;
        }
        
        const hours = Math.floor(distance / (1000 * 60 * 60));
        const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));

        
        return `${hours} Stunde(n) und ${minutes} Minute(n)`;
    }

    
    
    
    
    
    
    
    
    
    
    
    

    function betweenDates(startDate, endDate) {
        const now = new Date().getTime();
        if (startDate &lt;= now &amp;&amp; now &lt;= endDate) {
            return true;
        } else {
            return false;
        }
    }

    

    function addMapMarker(markerId, latitude, longitude, icon, popupText) {

        
        if ((popupText ?? &#34;&#34;).trim().length &gt; 0) {
            
            const marker = L.marker([latitude, longitude], { icon: icon }).addTo(map).bindPopup(popupText);

        } else {
            
            const marker = L.marker([latitude, longitude], { icon: icon }).addTo(map);
        }

        
        
    }

    

    function isValidDateTimeFormat(dateString) {
        
        const regex = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/;

        
        if (!regex.test(dateString)) {
            return false;
        }

        
        const [datePart, timePart] = dateString.split(&#39; &#39;);
        const [year, month, day] = datePart.split(&#39;-&#39;).map(Number);
        const [hours, minutes, seconds] = timePart.split(&#39;:&#39;).map(Number);

        
        const isValidDate = !isNaN(Date.UTC(year, month - 1, day));

        
        const isValidTime = hours &gt;= 0 &amp;&amp; hours &lt; 24 &amp;&amp; minutes &gt;= 0 &amp;&amp; minutes &lt; 60 &amp;&amp; seconds &gt;= 0 &amp;&amp; seconds &lt; 60;

        return isValidDate &amp;&amp; isValidTime;
    }

    

        function isDateInFuture(date) {
            
            const now = new Date();

                
                if (date &gt; now) {
                    return true;
                }

            
            return false;
        }
        
    

    function isDateInPast(date) {
            
            const now = new Date();

                
                if (date &lt; now) {
                    return true;
                }

            
            return false;
        }

        

        function isAnyDateToday(dateStrings) {
                const now = new Date();
                const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());

                for (let dateString of dateStrings) {
                    const targetDate = new Date(dateString);

                    
                    targetDate.setHours(0, 0, 0, 0);

                    if (targetDate.getTime() === today.getTime()) {
                        return true;
                    }
                }

                return false;
            }


&lt;/script&gt;

    &lt;div id=&#34;map&#34;&gt;&lt;/div&gt;
&lt;head&gt;
    &lt;link rel=&#34;stylesheet&#34; href=&#34;https://paragleitzeit.de/leaflet/css/leaflet.css&#34;
     integrity=&#34;sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=&#34;
     crossorigin=&#34;&#34;/&gt;
    &lt;style&gt;
        #map{
            height: 480px;
        }
    &lt;/style&gt;
&lt;/head&gt;


 
&lt;script src=&#34;https://paragleitzeit.de/leaflet/js/leaflet.js&#34;
     integrity=&#34;sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=&#34;
     crossorigin=&#34;&#34;&gt;   
    &lt;/script&gt;
    &lt;script&gt;

    var map = L.map(&#39;map&#39;).setView([47.372, 11.733], 7);
    L.tileLayer(&#39;https://tile.openstreetmap.org/{z}/{x}/{y}.png&#39;, {
        attribution: &#39;&amp;copy; &lt;a href=&#34;http://www.openstreetmap.org/copyright&#34;&gt;OpenStreetMap&lt;/a&gt;&#39;
    }).addTo(map);

var redIcon = new L.Icon({
  iconUrl: &#39;/leaflet/images/marker-icon-2x-red.png&#39;,
  shadowUrl: &#39;/leaflet/images/marker-shadow.png&#39;,
  iconSize: [26, 42],
  iconAnchor: [13, 21],
  shadowSize: [0, 0],
});

var greenIcon = new L.Icon({
  iconUrl: &#39;/leaflet/images/marker-icon-2x-green.png&#39;,
  shadowUrl: &#39;/leaflet/images/marker-shadow.png&#39;,
  iconSize: [26, 42],
  iconAnchor: [13, 21],
  shadowSize: [0, 0],
});

var orangeIcon = new L.Icon({
  iconUrl: &#39;/leaflet/images/marker-icon-2x-orange.png&#39;,
  shadowUrl: &#39;/leaflet/images/marker-shadow.png&#39;,
  iconSize: [26, 42],
  iconAnchor: [13, 21],
  shadowSize: [0, 0],
});

var blueIcon = new L.Icon({
  iconUrl: &#39;/leaflet/images/marker-icon-2x-blue.png&#39;,
  shadowUrl: &#39;/leaflet/images/marker-shadow.png&#39;,
  iconSize: [26, 42],
  iconAnchor: [13, 21],
  shadowSize: [0, 0],
});

var blackIcon = new L.Icon({
  iconUrl: &#39;/leaflet/images/marker-icon-2x-black.png&#39;,
  shadowUrl: &#39;/leaflet/images/marker-shadow.png&#39;,
  iconSize: [26, 42],
  iconAnchor: [13, 21],
  shadowSize: [0, 0],
});

var greyIcon = new L.Icon({
  iconUrl: &#39;/leaflet/images/marker-icon-2x-grey.png&#39;,
  shadowUrl: &#39;/leaflet/images/marker-shadow.png&#39;,
  iconSize: [26, 42],
  iconAnchor: [13, 21],
  shadowSize: [0, 0],
});

&lt;/script&gt;
&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
