FF14のエオルゼア時間を表示するツールのソースコードを作りましたのでお裾分け.

2025.04.10

Logging

おはようございます.先人の知恵を拝借して人工知能にぶん投げてソースコードを作っていただきました.尚、ツワモノさんがいて天候などもいつ起きるのか把握できるそうです.どういうアルゴリズムなのかは見ていないので分からないけど自分でも可能そうな気もします.

因みにソースコードをこちらに貼り付けておきますのでご自由にご使用ください.それにしてもオンラインゲームなのに自分の狩り場には人っ子一人いないのが悲しいです.

function lt2et(date) {
  // UNIX時間(秒)を取得
  const ut = date.getTime() / 1000;

  // エオルゼア時間1/1/1 00:00:00から経過した秒数
  const et_seconds = (ut * 60.0) / 175.0;

  // 各エオルゼア単位を計算
  const et_hours = ut / 175.0;
  const et_days = et_hours / 24.0;
  const et_months = et_days / 32.0;

  const et_year = et_months / 12.0 + 1.0;
  const et_month = (et_months % 12.0) + 1.0;
  const et_date = (et_days % 32.0) + 1.0;
  const et_hour = et_hours % 24.0;
  const et_minute = et_seconds % 60.0;

  return {
    year: Math.floor(et_year),
    month: Math.floor(et_month),
    date: Math.floor(et_date),
    hour: Math.floor(et_hour),
    minute: Math.floor(et_minute),
  };
}
setInterval(() => {
  let date;

  date = new Date(); // 現在時刻

  const et = lt2et(date);

  // 出力(例: 0001-01-01 00:00)
  document.getElementById("output").textContent = `
  ${et.month.toString().padStart(2, "0")}-${et.date
    .toString()
    .padStart(2, "0")} ${et.hour.toString().padStart(2, "0")}:${et.minute
    .toString()
    .padStart(2, "0")}
`;
}, 0);

Lv30なったらチョコボに乗れるらしいのでいまはそれを楽しみにしてソロで狩り続けています.

最後にZen foxで活動しています.
※Hades【Mana】で活動しています.
フォロー等よろしくお願いいたします🙇.
https://jp.finalfantasyxiv.com/lodestone/character/34913141/

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

```, アルゴリズム, エオルゼア時間, オンラインゲーム, ソースコード, ソロ, チョコボ, ツワモノさん, 人工知能, , 出力, 各エオルゼア単位, 天候, 時刻, 最後, 狩り場, 知恵, , 秒数, 計算,

アナログ時計をTOPページに追加しました.ソースコードはこちら.

2025.03.26

Logging

おはようございます.アナログ時計をTOPページに追加しました.ソースコードはこちらに記載していきます.尚、ソースコードは生成AI、Grokを使用して制作しました.

<div class="clock">
    <div class="hand hour-hand"></div>
    <div class="hand minute-hand"></div>
    <div class="hand second-hand"></div>
    <div class="center-clock"></div>
</div>
.clock {
  /* width: 200px;
  height: 200px;
  border: 2px solid rgb(226, 226, 226); */
  border-radius: 50%;
}

.hand {
  position: absolute;
  bottom: 50%;
  left: 50%;
  transform-origin: bottom;
  background: #333!important;
}

.hour-hand {
  width: 4px;
  height: 60px;
  background: #333!important;;
}

.minute-hand {
  width: 3px;
  height: 80px;
  background: #666!important;;
}

.second-hand {
  width: 2px;
  height: 90px;
  background: rgb(94, 93, 93)!important;;
}

.center-clock {
  width: 10px;
  height: 10px;
  background: rgb(95, 95, 95)!important;;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 4;
}
        function updateClock() {
            const now = new Date();
            const hours = now.getHours();
            const minutes = now.getMinutes();
            const seconds = now.getSeconds();

            // 角度の計算
            const hourDeg = (hours % 12 + minutes / 60) * 30; // 12時間で360度
            const minuteDeg = (minutes + seconds / 60) * 6; // 60分で360度
            const secondDeg = seconds * 6; // 60秒で360度

            // 針の回転
            document.querySelector('.hour-hand').style.transform = `translateX(-50%) rotate(${hourDeg}deg)`;
            document.querySelector('.minute-hand').style.transform = `translateX(-50%) rotate(${minuteDeg}deg)`;
            document.querySelector('.second-hand').style.transform = `translateX(-50%) rotate(${secondDeg}deg)`;
        }

        // 初回実行
        updateClock();
        // 1秒ごとに更新
        setInterval(updateClock, 1000);

生成AIが最初登場した時はここまで出来なかったので一回目の指示でちゃんとしたものを制作していけるようになったというのは正直なところ驚きです.やっぱり指数関数的に人工知能は成長するのかなとたまに思うことがありますが、それと相反する思いも持っています.

相反するとは、あと5年ぐらいで人工知能も頭打ちになるじゃないかなとも思っています.

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

```, アナログ時計, ソースコード, ところ, 人工知能, , 初回実行, 回転, , , 指数, 指示, 最初, 生成, , 秒ごと, 角度, 計算, , 頭打ち,

大晦日までカウントダウンしてまたカウントダウンするJSコード #永遠

2024.12.18

Logging

おはようございます.大晦日までカウントダウンしてまたカウントダウンするJSコードだけではツマラナイので全て漢字に変換して表示するコードを書きました.これでもツマラナイと思う人もいると思います.

そんなに難しいコードでもないのでコードを添付します💁.

        function updateCountdown() {
            const now = new Date();
            const nextNewYear = new Date(now.getFullYear() + 1, 0, 1, 0, 0, 0); // 次の年の1月1日0時0分0秒
            const diff = nextNewYear - now; // ミリ秒差

            if (diff > 0) {
                const days = Math.floor(diff / (1000 * 60 * 60 * 24));
                const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
                const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
                const seconds = Math.floor((diff % (1000 * 60)) / 1000);

                // 表示を更新
                document.getElementById("countdown").innerText =
                    kanji(`${days}日 ${hours}時間 ${minutes}分 ${seconds}秒`);
            } else {
                document.getElementById("countdown").innerText = "明けましておめでとうございます!";
            }
        }

        // 初回呼び出しと1秒ごとの更新
        updateCountdown();
        setInterval(updateCountdown, 1000);
        function kanji(str){
            let oo = [{'kanji':'零'},{'kanji':'壱'},{'kanji':'弐'},{'kanji':'参'},{'kanji':'肆'},{'kanji':'伍'},{'kanji':'陸'},{'kanji':'漆'},{'kanji':'捌'},{'kanji':'玖'}];
            oo.forEach((o,index)=>{
                str = str.replace(new RegExp(index, "g"),o.kanji);
            });
            return str;
        }

もっと芸のあるカウントダウンを作ろうとするとp5jsなどのライブラリが必要になると思います.WEBサイトでパーティカルなどを行っているサイトは大体こういうライブラリを使用しています.p5jsなどを使用して昔作ってみようかななどと思ったことが有りますが、実はp5jsは一度も触ったことがないです.

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

```, カウント, カウントダウン, コード, ツマラナイ, パーティカル, ライブラリ, , 全て漢字, 初回呼び出し, , 大晦日, 月日時分秒, 漆#, 玖#, , 秒ごと, 肆#, , 陸#,

T2がコードを10年書いている。Milliseconds-エラー対応編

2021.10.27

Logging

今回はエラー対応編です、ミリ秒を逐次表示するだけのコードだけどいろいろなひっかかる部分があるという事が動画を通して分かっていただければ幸いです。動画は高速なのでわかりにくいかもしれません、そんな人はgithubのヒストリーを閲覧ください。制作過程でどのような問題が現れたのかがわかると思います。

code{0} Milliseconds-エラー対応編part1

徐々に難しくなるかもしれませんが、一応、初心者が見て覚えると盗んで覚える、そして動画を見てプログラムって面白そうって思えるようなものを作っていきたいと思います。基本的に初心者がやってみたいなと思えるものを作っていければなと思っています。

思っていますが、それが出来るかは自分自身、分からないですけどね。なるべく心がけて作っていこうと思います。

https://github.com/zip358/T2_pg/commits/main/Milliseconds/assets/js/main.js

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

10, 2, github, Milliseconds-, いろいろ, エラー, コード, それ, ヒストリー, プログラム, ミリ, もの, , , 今回, 初心者, 制作, 動画, 問題, 対応, , 自分, 自身, 表示, 過程, 部分, 閲覧, 高速,

言いにくいbluetooth[ブルートゥース]が音飛びするよ。

2020.07.06

Logging

言いにくいbluetooth[ブルートゥース]が音飛びするよ。最初に解決方法を教えます。緩衝しているであろう電波の遮断とブルートゥースを再接続することで解決するということです。ぐぐるとその情報が上位に表示されるので間違いでしょう。あのSONYのサイトでも同じ解決方法ですからね。

確かにそれは解決方法として間違っていないようにも思うのだけど、PCとヘッドホンをミリ秒単位?でブルートゥースは通信を行っていると思うです、大体、音飛びする時の音って情報量が多い音源のような気がします。シンセサイザーみたいな音源だと比較的に音飛びが発生する確率が上昇するような気がするのですが、皆さんどうでしょうか?

ブルートゥースで音楽聞かないひとには分からないかもしれないけれど、ノイズや音飛びは結構、イラってする事があります。特にそれが頻発したらヘッドホンを買い換えようと考えるぐらい思うのですから、本当に音を気にする人は有線ヘッドホンを使っていると思うのですが…。

パソコンで作業をしながらって人は有線は結構邪魔な存在です。因みに少し前までは有線で頑張っていましたが無線(ブルートゥース)に切り替えました。ブルートゥースヘッドホンは充電式なので就寝前に充電すれば問題なく一日使えます。そろそろ1万円代のブルートゥースヘッドホンに変えようかなとか思っています。

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

bluetooth, PC, SONY, イラ, こと, サイト, シンセサイザー, それ, ノイズ, ひと, ブルートゥース, ヘッド, ヘッドホン, ミリ, 上位, 上昇, , , 単位, 大体, 情報, 接続, 方法, , 最初, 有線, 本当, , 発生, 皆さん, 確率, , 緩衝, 表示, 解決, 通信, 遮断, 電波, , 音楽, 音源, 音飛び, 頻発,