您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
計算出席率
当前为
// ==UserScript== // @name VTC_MyPortal_Attenddancd_Calculator // @namespace http://tampermonkey.net/ // @version 2023-12-18 // @description 計算出席率 // @author GG // @match https://myportal.vtc.edu.hk/wps/myportal/!ut/p/z1/* // @icon https://www.google.com/s2/favicons?sz=64&domain=edu.hk // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; console.log("Hello world"); var original = document.querySelector("#viewns_Z7_60MAHK02O09VD0QM6ROE6S0000_\\:j_id_1t\\:j_id_2b\\:tbody_element").innerText; original = original.replace(/\s+/ig, " ") original = original.split(" "); console.log([original]) var real_hour_time = 0 var sum_hour_time = 0 // 傳入 HH:MM 返回 second function format2sec(format_time) { // 小時 let hours = parseInt(format_time.slice(0, 2)) * 3600; // 分鐘 let second = parseInt(format_time.slice(3, 5)) * 60; return hours + second; } var i = 0 while (i < original.length) { // +2 狀態 // +3 拍卡時間 if (original[i + 2] == "Present" || original[i + 2] == "Absent" || original[i + 2] == "Late") { var timeDf = 0 // 課堂開始時間 let st = format2sec(original[i + 4]) // 課堂結束時間 let ed = format2sec(original[i + 6]) sum_hour_time += ed - st if (original[i + 3] !== "-") { // 拍卡時間 let tapCareTime = format2sec(original[i + 3]) // 如果遲到 按照拍卡時間計算 if (original[i + 2] === "Late") { timeDf = ed - tapCareTime } else { timeDf = ed - st } real_hour_time += timeDf // console.log("拍卡時間:", original[i+3], "上課時間", original[i+4], "落堂時間:", original[i+6], "出席時數", (timeDf/3600).toFixed(1), "Hours") } else if (original[i + 2] === "Absent") { // console.log("未出席:", original[i]) } } i++ } // 上捨入結果 var Abs = Math.ceil(100 - ((real_hour_time / 3600).toFixed(2) / (sum_hour_time / 3600).toFixed(2)).toFixed(3) * 100) // console.log("------------結果只供參考------------", "\nAbs:", Abs, "%", "\n課程時數:", (sum_hour_time / 3600).toFixed(1), "Hours") document.querySelector("#viewns_Z7_60MAHK02O09VD0QM6ROE6S0000_\\:j_id_1t > div:nth-child(7) > span").innerHTML += "<span>"+"------------結果只供參考------------"+"Abs:"+ Abs.toString() + "%" + "課程時數:"+ (sum_hour_time / 3600).toFixed(1).toString()+ "Hours"+"</span>" })();