🛩️

札幌のラボに行くための経費を計算するScriptを作成してみました

2023/08/12に公開

こんにちは、AIQ株式会社のフロントエンドエンジニアのまさぴょんです!
今回は、私が所属するAIQ株式会社の札幌ラボに、出張で行くことになったので、その経費(交通費・宿泊費)を計算するためのScriptを作成してみました。

電卓を使いなさいという話ですが、そこは多めに見てください。。。🐱
だって、作りたかったんだもん。。。🥺

札幌のラボに行くための経費(交通費・宿泊費)を計算するScriptを作成する

要件定義

  1. 北海道の札幌ラボに行く際の経費(交通費・宿泊費)の合計を算出できる。
  2. 合計額は、税込と税抜、両方を計算できる。

上記のような要件を定義した上で、さらに東京から札幌ラボに行く際の経費(交通費・宿泊費)をPick Up していきます。

  1. 「家 <-> 空港」の電車の往復
  2. 飛行機の往復
  3. 「札幌 <-> 新千歳」の電車の往復
  4. 2日分のホテルの宿泊費

ここまで、決まれば、あとはプログラムを書いていきます。

SampleCode

実際に作成したプログラムは次のとおりです。

costCalc.js
/** 「家 -> 空港」の電車の行き_Cost */
const fromMyHouseTrainCost = 1100;
/** 「空港 -> 家」の電車の帰り_Cost */
const toMyHouseTrainCost = 1100;

/** 飛行機の往復_Cost */
const allAirplaneCost = 48584;

/** 「新千歳 -> 札幌」に向かうため電車_Cost */
const toSapporoTrainCost = 1990;
/** 「札幌 -> 新千歳」に向かうため電車_Cost */
const fromSapproTrainCost = 1990;

/** ホテル1日目_Cost */
const hotelCost_1 = 19159;
/** ホテル2日目_Cost */
const hotelCost_2 = 19159;

/** すべての Cost をまとめた List */
const allCostList = [
  allAirplaneCost,
  fromMyHouseTrainCost,
  toMyHouseTrainCost,
  toSapporoTrainCost,
  fromSapproTrainCost,
  hotelCost_1,
  hotelCost_2,
];

/** 税込の Cost を計算する */
const sumTaxIncludedCost = allCostList.reduce(
  (previousValue, currentValue) => previousValue + currentValue,
  0
);

// 小数点以下を切り捨て & 3桁ごとに , (カンマ)を追加する処理 をして、ログ出力する。
console.log(
  "合計額(税込): ",
  Math.round(sumTaxIncludedCost).toLocaleString("ja-JP"),
  "円"
);
// 合計額(税込):  93,082 円

/** 消費税率(10%の場合) */
const taxRate = 0.1;

/** 税抜の Cost を計算する */
const sumTaxExcludedCost = sumTaxIncludedCost / (1 + taxRate);

// 小数点以下を切り捨て & 3桁ごとに , (カンマ)を追加する処理 をして、ログ出力する。
console.log(
  "合計額(税抜): ",
  Math.round(sumTaxExcludedCost).toLocaleString("ja-JP"),
  "円"
);
// 合計額(税抜):  84,620 円

参考記事

reduceメソッドの使い方や、JavaScriptの数値処理については、私の個人ブログで、以前に記事を書いたことがありますので、紹介します。

  1. Array.prototype.reduce()の説明した記事

https://masanyon.com/reduce/

  1. JavaScriptでカンマ区切りや小数点を切り捨て・四捨五入などの数値の処理をする方法についての記事

https://masanyon.com/javascript-number-math-round-floor-tofixed-format/

まとめ

電卓でできることを、今回はプログラムで書いてみましたが、このような身の回りの Logicをプログラムで再現してみると、面白い発見があるかもしれないので、おすすめです。

普段は、個人で、Tech Blogも書いています。
https://masanyon.com/

注意事項

この記事は、AIQ 株式会社の社員による個人の見解であり、所属する組織の公式見解ではありません。

求む、冒険者!

AIQ株式会社では、一緒に働いてくれるエンジニアを絶賛、募集しております🐱🐹✨

エンジニア視点での我が社のおすすめポイント

  1. フルリモート・フルフレックスの働きやすい環境!
    • 前の会社でアサインしてた現場は、フル出社だったので、ありがたすぎる。。。
    • もうフル出社には、戻れなくなります!
  2. 経験豊富なエンジニアの先輩方
    • 私は、3年目の駆け出しエンジニアなので、これが、かなりありがたいです!
  3. 自社開発とR&D(受託開発)を両方している会社なので、経験できる技術が多い。
    • 自社のProduct開発と、他社からの受託案件で、いろいろな技術を学ぶことができます。
  4. AI関連の最新の技術に触れられるチャンスが多い。
    • 自社で特許を持つほど、AI技術に強い会社で、プロファイリングを得意とした技術体系があります。
    • ChatGPTを自社アプリに搭載など、AIトレンドも、もちろん追っており、最新の技術に触れられるチャンスが多いです。
  5. たまに、札幌ラボ(東京から札幌) or 東京オフィス(札幌から東京)に出張で行ける!
    • 東京と、札幌に2拠点ある会社なので、会合などで集まる際に、出張で行けます。

採用技術 (一部抜粋)

  • FrontEnd: TypeScript, JavaScript, React.js, Vue.js, Next.js, Nuxt.js など
  • BackEnd: Node.js, Express,Python など
  • その他技術: Docker, AWS, Git, GitHub など

エントリー方法

  1. 私達と東京か札幌で一緒に働ける仲間を募集しています。
    詳しくは、Wantedly (https://www.wantedly.com/companies/aiqlab)を見てみてください。

Webエンジニア向け説明

https://www.wantedly.com/projects/1089410

データサイエンティスト向け説明

https://www.wantedly.com/projects/1089406

人事に直通(?)・ご紹介Plan(リファラル採用)

私経由で、ご紹介もできますので、興味のある方や気軽にどんな会社なのか知りたい方は、X(旧:Twitter)にて、DMを送ってくれても大丈夫です。
https://twitter.com/masanyon1212

AIQ Tech Blog (有志)

Discussion