-
ウエル活×ブラックフライデー 20%還元 自動計算
投稿日 2025年11月20日 23:59:00 (主婦 副業)
ウエル活×ブラックフライデーで実質いくらになるかの自動計算表作りました!
ウエル活×ブラックフライデー 20%還元 計算
※一度に合計 5,000円以上 かつ 3点以上 の購入前提で20%還元として計算
【ウエル活】商品価格 ÷ 1.5(四捨五入) - 【ブラフラ】商品価格 × 0.2(切り捨て)
商品価格を複数入れると、各商品の還元計算出ます。
※5000円超えは1000円分の還元です
計算上1000円以上出てしまいます〓
入力例)437.8
(function(){
const container = document.getElementById(‘itemsContainer’);
const addBtn = document.getElementById(‘addItem’);
const calcBtn = document.getElementById(‘calculate’);
const clearBtn = document.getElementById(‘clearAll’);
const summary = document.getElementById(‘summary’);
const perItemArea = document.getElementById(‘perItemArea’);
function addRow(){
const row = document.createElement(‘div’);
row.className = ‘itemRow’;
row.style.display = ‘flex’;
row.style.gap = ‘8px’;
row.style.alignItems = ‘center’;
const input = document.createElement(‘input’);
input.type = ‘number’;
input.step = ‘0.01’;
input.min = ‘0’;
input.className = ‘priceInput’;
input.placeholder = ‘商品価格(円)’;
input.style.flex = ‘1’;
input.style.padding = ‘8px’;
input.style.border = ‘1px solid #ddd’;
input.style.borderRadius = ‘6px’;
const remove = document.createElement(‘button’);
remove.type = ‘button’;
remove.className = ‘removeBtn’;
remove.textContent = ‘削除’;
remove.style.padding = ‘8px 10px’;
remove.style.border = ‘0’;
remove.style.background = ‘#f2f2f2’;
remove.style.borderRadius = ‘6px’;
remove.style.cursor = ‘pointer’;
remove.addEventListener(‘click’, function(){ container.removeChild(row); });
row.appendChild(input);
row.appendChild(remove);
container.appendChild(row);
}
// 初期削除ボタンの挙動設定
container.querySelectorAll(‘.removeBtn’).forEach(btn=>{
btn.addEventListener(‘click’,()=>btn.parentElement.remove());
});
addBtn.addEventListener(‘click’,()=>addRow());
clearBtn.addEventListener(‘click’,()=>{
container.innerHTML=”;
addRow(); addRow(); addRow();
summary.innerHTML=”;
perItemArea.innerHTML=”;
});
// 四捨五入(÷1.5)と切り捨て(×0.2)
function calcForPrice(price){
// price は小数を含む数値
// 生の割算値(表示用、小数あり)
const rawDivide = price / 1.5;
// 四捨五入(整数):Math.round を確実に適用
const roundDivide = Math.round(rawDivide);
// 切り捨て: price * 0.2 を Math.floor で切り捨て(整数)
const floorMultiply = Math.floor(price * 0.2);
// 最終結果(整数同士の差)
const result = roundDivide – floorMultiply;
return { rawDivide, roundDivide, floorMultiply, result };
}
calcBtn.addEventListener(‘click’,()=>{
const inputs = Array.from(container.querySelectorAll(‘.priceInput’));
const prices = inputs.map(i=> {
const v = parseFloat(i.value);
return (!isNaN(v) && v>0) ? v : 0;
});
const activePrices = prices.filter(p=>p>0);
const total = activePrices.reduce((a,b)=>a+b,0);
const itemCount = activePrices.length;
perItemArea.innerHTML=”;
activePrices.forEach((p, idx) => {
const { rawDivide, roundDivide, floorMultiply, result } = calcForPrice(p);
const div = document.createElement(‘div’);
div.style.padding=’8px’;
div.style.borderBottom=’1px dashed #eee’;
div.style.fontSize=’13px’;
div.innerHTML = `
商品${idx+1}:${p.toLocaleString(undefined,{minimumFractionDigits:2, maximumFractionDigits:2})} 円
・生の計算: ${p.toFixed(4)} ÷ 1.5 = ${rawDivide.toFixed(4)}(小数)
・ウエル活に必要なポイント(四捨五入): ${rawDivide.toFixed(4)} → ${roundDivide.toLocaleString()}
・ブラックフライデー還元(切り捨て): ${ (p * 0.2).toFixed(4) } → ${floorMultiply.toLocaleString()}
→ 最終: ${result.toLocaleString()} 円
`;
perItemArea.appendChild(div);
});
if(total >= 5000 && itemCount >= 3){
const totalResult = activePrices.reduce((s,p)=> s + calcForPrice(p).result, 0);
summary.innerHTML = `
`;
} else {
let reason = [];
if(total < 5000) reason.push(`合計が5,000円未満 (${total.toLocaleString(undefined,{minimumFractionDigits:2})} 円)`);
if(itemCount < 3) reason.push(`購入点数が3点未満 (${itemCount} 点)`);
summary.innerHTML = `
`;
}
});
})();
Source: N専業主婦のお小遣い稼ぎはじめました。ew feed 続きを読む>>
最新情報
