<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>South Taiwan Statistics Conference - Tag - Zhiverse</title><link>https://yao-chih.netlify.app/en/tags/stsc/</link><description>South Taiwan Statistics Conference - Tag - Zhiverse</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>yaochihh@gmail.com (Josh)</managingEditor><webMaster>yaochihh@gmail.com (Josh)</webMaster><copyright>Zhiverse</copyright><atom:link href="https://yao-chih.netlify.app/en/tags/stsc/" rel="self" type="application/rss+xml"/><item><title>[Thought] The 35th South Taiwan Statistics Conference</title><link>https://yao-chih.netlify.app/en/the-35th-south-taiwan-statistics-conference/</link><pubDate>Wed, 15 Apr 2026 10:00:58 +0800</pubDate><author>Author</author><guid>https://yao-chih.netlify.app/en/the-35th-south-taiwan-statistics-conference/</guid><description><![CDATA[<div class="featured-image">
                <img src="https://raw.githubusercontent.com/Josh-test-lab/website-assets-repository/refs/heads/main/posts/The%2035th%20South%20Taiwan%20Statistics%20Conference/cover%20image.webp" referrerpolicy="no-referrer">
            </div><!-- filpclock 的 css -->
<link rel="stylesheet" href="/css/filpclock.css">
<div class="timeline-flipclock">
<div class="flip-wrapper" id="35th-stsc" data-target-time="2026-06-25T09:30:00&#43;08:00" data-format="year,month,day,hour,minute,second">
    <div class="flip-clock-title"
         data-past=""
         data-future="">
    </div>
    <div class="flip-class"></div>
</div>

<script>
document.addEventListener("DOMContentLoaded", function () {
  const clockId = "35th-stsc";
  const wrapper = document.getElementById(clockId);
  const clock = wrapper.querySelector(".flip-class");
  const isLiveClock = wrapper.dataset.targetTime === "now";
  const targetTime = isLiveClock ? new Date() : new Date(wrapper.dataset.targetTime);
  const format = wrapper.dataset.format.split(",");

  const timeLabels = {
    year:   "years",
    month:  "months",
    day:    "days",
    hour:   "hours",
    minute: "minutes",
    second: "seconds"
  };

  const titleDiv = wrapper.querySelector(".flip-clock-title");
  const pastTitle = titleDiv.dataset.past?.trim();
  const futureTitle = titleDiv.dataset.future?.trim();

  const isPast = (isLiveClock || new Date() > targetTime);

  if (isPast) {
    if (pastTitle && pastTitle !== "/") {
        titleDiv.textContent = pastTitle;
    } else {
        titleDiv.textContent = "Passed";
    }
    } else {
    if (futureTitle && futureTitle !== "/") {
        titleDiv.textContent = futureTitle;
    } else {
        titleDiv.textContent = "Remaining";
    }
  }

  const pad = n => String(n).padStart(2, "0");

  function getTimeDiff(target) {
    const now = new Date();
    let diff = Math.abs(target - now) / 1000;
    const past = now > target;

    const timeParts = {
      year: 0, month: 0, day: 0,
      hour: 0, minute: 0, second: 0
    };

    
    if (isLiveClock) {
      timeParts.year = now.getFullYear();
      timeParts.month = now.getMonth() + 1; 
      timeParts.day = now.getDate();
      timeParts.hour = now.getHours();
      timeParts.minute = now.getMinutes();
      timeParts.second = now.getSeconds();
      return { past: true, timeParts };
    }
  
    
    const temp = new Date(past ? target : now);
    const ref = new Date(past ? now : target);

    timeParts.year = ref.getFullYear() - temp.getFullYear();
    timeParts.month = ref.getMonth() - temp.getMonth();
    timeParts.day = ref.getDate() - temp.getDate();
    timeParts.hour = ref.getHours() - temp.getHours();
    timeParts.minute = ref.getMinutes() - temp.getMinutes();
    timeParts.second = ref.getSeconds() - temp.getSeconds();

    
    if (timeParts.second < 0) { timeParts.second += 60; timeParts.minute--; }
    if (timeParts.minute < 0) { timeParts.minute += 60; timeParts.hour--; }
    if (timeParts.hour < 0) { timeParts.hour += 24; timeParts.day--; }
    if (timeParts.day < 0) {
      const daysInPrevMonth = new Date(ref.getFullYear(), ref.getMonth(), 0).getDate();
      timeParts.day += daysInPrevMonth; timeParts.month--;
    }
    if (timeParts.month < 0) { timeParts.month += 12; timeParts.year--; }

    return { past, timeParts };
  }

  function createClockDisplay() {
    wrapper.classList.add(clockId);
    format.forEach(unit => {
      const div = document.createElement("div");
      div.className = "flip-unit";
      div.dataset.unit = unit;

      div.innerHTML = `
        <div class="flip-number" id="${clockId}-flip-${unit}">00</div>
        <div class="flip-label">${timeLabels[unit]}</div>
      `;
      clock.appendChild(div);
    });
  }

  function updateClock() {
    const { past, timeParts } = getTimeDiff(targetTime);

    format.forEach(unit => {
      const val = timeParts[unit];
      const el = document.getElementById(`${clockId}-flip-${unit}`);
      if (el.textContent !== pad(val)) {
        el.style.transform = "rotateX(180deg)";
        setTimeout(() => {
          el.textContent = pad(val);
          el.style.transform = "rotateX(0deg)";
        }, 150);
      }
    });
  }

  createClockDisplay();
  updateClock();
  setInterval(updateClock, 1000);
});
</script>

</div>]]></description></item><item><title>[Thought] The 34th South Taiwan Statistics Conference</title><link>https://yao-chih.netlify.app/en/the-34th-south-taiwan-statistics-conference/</link><pubDate>Sun, 08 Jun 2025 18:06:17 +0800</pubDate><author>Author</author><guid>https://yao-chih.netlify.app/en/the-34th-south-taiwan-statistics-conference/</guid><description><![CDATA[<div class="featured-image">
                <img src="https://raw.githubusercontent.com/Josh-test-lab/website-assets-repository/main/posts/The%2034th%20South%20Taiwan%20Statistics%20Conference/cover%20image.jpg" referrerpolicy="no-referrer">
            </div><!-- filpclock 的 css -->
<link rel="stylesheet" href="/css/filpclock.css">
<div class="timeline-flipclock">
<div class="flip-wrapper" id="34th-stsc" data-target-time="2025-06-19T09:30:00&#43;08:00" data-format="year,month,day,hour,minute,second">
    <div class="flip-clock-title"
         data-past=""
         data-future="">
    </div>
    <div class="flip-class"></div>
</div>

<script>
document.addEventListener("DOMContentLoaded", function () {
  const clockId = "34th-stsc";
  const wrapper = document.getElementById(clockId);
  const clock = wrapper.querySelector(".flip-class");
  const isLiveClock = wrapper.dataset.targetTime === "now";
  const targetTime = isLiveClock ? new Date() : new Date(wrapper.dataset.targetTime);
  const format = wrapper.dataset.format.split(",");

  const timeLabels = {
    year:   "years",
    month:  "months",
    day:    "days",
    hour:   "hours",
    minute: "minutes",
    second: "seconds"
  };

  const titleDiv = wrapper.querySelector(".flip-clock-title");
  const pastTitle = titleDiv.dataset.past?.trim();
  const futureTitle = titleDiv.dataset.future?.trim();

  const isPast = (isLiveClock || new Date() > targetTime);

  if (isPast) {
    if (pastTitle && pastTitle !== "/") {
        titleDiv.textContent = pastTitle;
    } else {
        titleDiv.textContent = "Passed";
    }
    } else {
    if (futureTitle && futureTitle !== "/") {
        titleDiv.textContent = futureTitle;
    } else {
        titleDiv.textContent = "Remaining";
    }
  }

  const pad = n => String(n).padStart(2, "0");

  function getTimeDiff(target) {
    const now = new Date();
    let diff = Math.abs(target - now) / 1000;
    const past = now > target;

    const timeParts = {
      year: 0, month: 0, day: 0,
      hour: 0, minute: 0, second: 0
    };

    
    if (isLiveClock) {
      timeParts.year = now.getFullYear();
      timeParts.month = now.getMonth() + 1; 
      timeParts.day = now.getDate();
      timeParts.hour = now.getHours();
      timeParts.minute = now.getMinutes();
      timeParts.second = now.getSeconds();
      return { past: true, timeParts };
    }
  
    
    const temp = new Date(past ? target : now);
    const ref = new Date(past ? now : target);

    timeParts.year = ref.getFullYear() - temp.getFullYear();
    timeParts.month = ref.getMonth() - temp.getMonth();
    timeParts.day = ref.getDate() - temp.getDate();
    timeParts.hour = ref.getHours() - temp.getHours();
    timeParts.minute = ref.getMinutes() - temp.getMinutes();
    timeParts.second = ref.getSeconds() - temp.getSeconds();

    
    if (timeParts.second < 0) { timeParts.second += 60; timeParts.minute--; }
    if (timeParts.minute < 0) { timeParts.minute += 60; timeParts.hour--; }
    if (timeParts.hour < 0) { timeParts.hour += 24; timeParts.day--; }
    if (timeParts.day < 0) {
      const daysInPrevMonth = new Date(ref.getFullYear(), ref.getMonth(), 0).getDate();
      timeParts.day += daysInPrevMonth; timeParts.month--;
    }
    if (timeParts.month < 0) { timeParts.month += 12; timeParts.year--; }

    return { past, timeParts };
  }

  function createClockDisplay() {
    wrapper.classList.add(clockId);
    format.forEach(unit => {
      const div = document.createElement("div");
      div.className = "flip-unit";
      div.dataset.unit = unit;

      div.innerHTML = `
        <div class="flip-number" id="${clockId}-flip-${unit}">00</div>
        <div class="flip-label">${timeLabels[unit]}</div>
      `;
      clock.appendChild(div);
    });
  }

  function updateClock() {
    const { past, timeParts } = getTimeDiff(targetTime);

    format.forEach(unit => {
      const val = timeParts[unit];
      const el = document.getElementById(`${clockId}-flip-${unit}`);
      if (el.textContent !== pad(val)) {
        el.style.transform = "rotateX(180deg)";
        setTimeout(() => {
          el.textContent = pad(val);
          el.style.transform = "rotateX(0deg)";
        }, 150);
      }
    });
  }

  createClockDisplay();
  updateClock();
  setInterval(updateClock, 1000);
});
</script>

</div>]]></description></item></channel></rss>