动态日历
统计近10个月的博主文章和评论数目
Loading...
分类雷达图
Loading...
发布统计图
Loading...
分类统计图
Loading...
标签统计图
Loading...
时光机
新
时光机
此条为私密说说,仅发布者可见
February 17th, 2025 at 04:23 pm
日记 小站访客破万!
October 3rd, 2024 at 10:46 am
教程 互文性(Intertextuality)和隐喻(Metaphor)互文性常出现在艺术作品中,效仿他人风格而无需添加规范引用,像是一种“致敬”或者“合法抄袭”。如“To do or not ...
September 24th, 2024 at 11:32 am
用户名
密码
登录
登录中...
文章
时光机
Y4S1-重要DDLs时间线整理
博主:
LeoZHN
发布时间:
2024 年 09 月 20 日
323 次浏览
暂无评论
7981字数
分类:
乐园
首页
正文
分享到:
Deadlines Timeline
最后修改:2025 年 02 月 19 日
© 禁止转载
打赏
赞赏作者
支付宝
微信
赞
喵~
下一篇
上一篇
发表评论
取消回复
本站使用cookie技术保留您的个人信息以便您下次快速评论,继续评论表示您已同意该条款。支持Emoji评论。
评论
*
私密评论
名称
*
🎲
邮箱
*
地址
发表评论
提交中...
Y4S1-重要DDLs时间线整理
LeoZHN
•
2024 年 09 月 20 日
<p><style><br> .gn_box {</p><pre><code>border: none; border-radius: 15px; padding: 10px 14px; margin: 10px; margin-bottom: 20px; text-align: center; background-color: #fff;</code></pre><p>}<br> .countdown-item {</p><pre><code>font-size: 16px; color: #000; margin: 5px 0;</code></pre><p>}<br> h2 {</p><pre><code>font-weight: bold; text-align: center;</code></pre><p>}<br> .overdue {</p><pre><code>color: #ff0000; font-weight: bold;</code></pre><p>}<br> .divider {</p><pre><code>border-top: 1px solid #ccc; margin: 10px 0;</code></pre><p>}<br> .header-info {</p><pre><code>background-color: #fff9c4; /* 淡黄色 */ padding: 15px; margin: 10px; border-radius: 5px; text-align: center; /* 仅文本框内居中 */ border: 2px dashed #ffb6c1; /* 桃粉色边框,合适宽度和纹理 */</code></pre><p>}<br> .large-text {</p><pre><code>font-size: 1.2em;</code></pre><p>}<br> .bold-time {</p><pre><code>font-weight: bold;</code></pre><p>}<br></style></p><div style="background-color: #fff9c4; padding: 15px; margin: 10px; border-radius: 5px; text-align: center; border: 2px dashed #ffb6c1;" id="header-info"> <!-- 这里会插入由JavaScript生成的内容 --> </div><div class="gn_box"> <h2 style="text-align: center;"><b><font color="green">Deadlines Timeline</font></b></h2> <div id="CountMsg" class="HotDate"></div> </div><script type="text/javascript"> const events = [ { name: "MR:毕业论文项目 Oral Assessment of Project Progress I", date: '2024/09/25 14:00' }, { name: "GE:传播学独立研究(媒体与移民) Project Proposal", date: '2024/09/30 11:59' }, { name: "FE:信息图写作(1007) Quiz 1", date: '2024/10/17 14:00' }, { name: "MR:英语作为世界语言 Presentation", date: '2024/10/15 15:00' }, { name: "MR:英语作为世界语言 Pre查找资料,组内讨论", date: '2024/10/06 23:00' }, { name: "MR:毕业论文项目 Draft submission(12周)", date: '2024/11/27 23:59' }, { name: "FE:信息图写作(1007) Homework (write an overview)", date: '2024/09/26 00:00' }, { name: "FE:信息图写作(1007) Summary 1", date: '2024/11/04 13:00' }, { name: "MR:英语作为世界语言 Term Paper", date: '2024/11/12 23:59' }, { name: "MR:英语作为世界语言 Final Exam", date: '2024/12/23 09:00' }, { name: "MR:多模态交际分析 Presentation", date: '2024/12/02 10:00' }, { name: "MR:英语作为世界语言 Debate", date: '2024/12/03 15:00' }, { name: "GE:传播学独立研究(媒体与移民) Final Report", date: '2024/12/03 23:59' }, { name: "FE:信息图写作(1007) Quiz 2", date: '2024/12/02 13:00' }, { name: "MR:多模态交际分析 Portfolio", date: '2024/12/03 23:59' }, { name: "GE:传播学独立研究(媒体与移民) Oral Presentation", date: '2024/12/10 08:00' }, { name: "FE:信息图写作(1007) Summary 2", date: '2024/12/09 13:00' }, { name: "MR:多模态交际分析 Quiz 2", date: '2024/10/29 23:59' }, { name: "MR:多模态交际分析 Quiz 3", date: '2024/11/12 23:59' }, { name: "MR:多模态交际分析 Individual Report", date: '2024/12/21 23:59' }, { name: "MR:毕业论文项目 Test", date: '2024/09/20 16:00' }, { name: "ME:英语作为特定用途 1.5小时的Presentation", date: '2024/11/07 15:00' }, { name: "ME:英语作为特定用途 Term Paper", date: '2024/11/14 12:00' }, { name: "ME:英语作为特定用途 Final Exam", date: '2024/12/26 09:00' }, { name: "其他 党委值班排班 第4周周三10-12", date: '2024/09/25 10:00' }, { name: "其他 党委值班排班 第7周周三10-12", date: '2024/10/23 10:00' }, { name: "其他 党委值班排班 第11周周三10-12", date: '2024/11/13 10:00' }, { name: "其他 CICF Day 1", date: '2024/10/02 08:00' }, { name: "其他 珠海航展", date: '2024/11/15 08:00' }, { name: "其他 Reading Week Begins", date: '2024/10/25 00:00' }, { name: "其他 Reading Week Ends", date: '2024/11/4 00:00' }, { name: "其他 第三次雅思冲击", date: '2024/12/11 09:00' }, { name: "MR:毕业论文项目 新思路提交", date: '2024/9/29 22:00' }, { name: "FE:信息图写作(1007) Homework (write a description)", date: '2024/09/30 10:00' }, { name: "ME:英语作为特定用途 Complete the worksheet ASAP", date: '2024/10/10 13:00' } ]; const classSchedule = { 1: { classes: ["AMC", "WAI"], hours: 4 }, 2: { classes: ["ISC", "AMC", "EWL"], hours: 6 }, 4: { classes: ["ISC", "WAI", "ESP"], hours: 5 } }; const holidays = [ { start: new Date('2024/10/01'), end: new Date('2024/10/07') }, { start: new Date('2024/10/26'), end: new Date('2024/11/03') } ]; function isHoliday(date) { return holidays.some(holiday => date >= holiday.start && date <= holiday.end); } function renderHeaderInfo() { const now = new Date(); const dayOfWeek = now.getDay(); const daysOfWeek = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]; const headerInfoDiv = document.getElementById('header-info'); let headerText = `<div style="font-size: 1.2em;">尊敬的LEO大人,现在是 <span style="font-weight: bold;">${now.getFullYear()}年${now.getMonth() + 1}月${now.getDate()}日 ${daysOfWeek[dayOfWeek]} ${now.getHours()}时${now.getMinutes()}分${now.getSeconds()}秒</span> 喵</div><div class='divider'></div>`; if (isHoliday(now)) { headerText += "<div>今天是节假日喵,主人没有课程,请好好规划时间喵~~喵喵!</div>"; } else if (classSchedule[dayOfWeek]) { const todayClasses = classSchedule[dayOfWeek]; headerText += `<div>主人今天的课程有:${todayClasses.classes.join(', ')},一共有${todayClasses.hours}小时,记得去上课喵~</div>`; } else { headerText += "<div>主人今天没有课程,请好好规划时间喵~</div><div class='divider'></div>"; } const upcomingTasks3Days = events.filter(event => { const eventDate = new Date(event.date); const timeDiff = eventDate - now; return timeDiff > 0 && timeDiff <= 3 * 24 * 60 * 60 * 1000; }); if (upcomingTasks3Days.length > 0) { // 对任务按照时间由近到远进行排序 upcomingTasks3Days.sort((a, b) => new Date(a.date) - new Date(b.date)); headerText += `<div>在未来的3天内,您还有${upcomingTasks3Days.length}个任务亟待处理,它们是:</div>`; upcomingTasks3Days.forEach(task => { headerText += `<div><b><font color="red">「${task.name} - ${task.date}」</font></b></div>`; }); headerText += "<div>加油喵~</div>"; } else { headerText += "<div>在未来的3天内,您暂时没有任务亟待处理喵~</div>"; } const upcomingTasks7Days = events.filter(event => { const eventDate = new Date(event.date); const timeDiff = eventDate - now; return timeDiff > 0 && timeDiff <= 7 * 24 * 60 * 60 * 1000; }); if (upcomingTasks7Days.length > 0) { // 对任务按照时间由近到远进行排序 upcomingTasks7Days.sort((a, b) => new Date(a.date) - new Date(b.date)); headerText += `<div>在未来的一周内,您还有${upcomingTasks7Days.length}个任务亟待处理,它们是:</div>`; upcomingTasks7Days.forEach(task => { headerText += `<div><b><font color="#ffb6c1">「${task.name} - ${task.date}」</font></b></div>`; }); headerText += "<div>记得提前规划喵~</div><div class='divider'></div>"; } else { headerText += "<div>在未来的一周内,您暂时没有任务亟待处理喵~</div><div class='divider'></div>"; } if (dayOfWeek === 3 || dayOfWeek === 0) { headerText += "<div style='font-size: 1.2em;'>今天是出勤日,您可以出勤喵~</div>"; } else { headerText += "<div style='font-size: 1.2em;'>今天不是出勤日(工作日的周三、周日、节假日),请您安心工作学习喵~</div>"; } headerInfoDiv.innerHTML = headerText; } function renderCountdowns() { const container = document.getElementById('CountMsg'); container.innerHTML = ''; const groupedEvents = events.reduce((acc, event) => { const key = event.name.split(' ')[0]; if (!acc[key]) acc[key] = []; acc[key].push(event); return acc; }, {}); for (const key in groupedEvents) { groupedEvents[key].sort((a, b) => new Date(a.date) - new Date(b.date)); const groupDiv = document.createElement('div'); const header = document.createElement('h2'); header.textContent = key; groupDiv.appendChild(header); groupedEvents[key].forEach(event => { const itemDiv = document.createElement('div'); itemDiv.className = 'countdown-item'; const deadlineDate = new Date(event.date); const formattedDate = `${deadlineDate.getFullYear()}年${deadlineDate.getMonth() + 1}月${deadlineDate.getDate()}日`; itemDiv.innerHTML = `${event.name}: <span id="countdown-${event.name}"></span> (${formattedDate})`; groupDiv.appendChild(itemDiv); }); container.appendChild(groupDiv); const divider = document.createElement('div'); divider.className = 'divider'; container.appendChild(divider); } } function updateCountdowns() { const now = new Date(); events.forEach(event => { const end = new Date(event.date); const t = end.getTime() - now.getTime(); const h = Math.floor(t / (1000 * 60 * 60)); const countdownElement = document.getElementById(`countdown-${event.name}`); if (countdownElement) { if (t < 0 && h >= -8) { const overdueHours = Math.abs(Math.floor(t / (1000 * 60 * 60))); const overdueMinutes = Math.abs(Math.floor((t / (1000 * 60)) % 60)); const overdueSeconds = Math.abs(Math.floor((t / 1000) % 60)); countdownElement.parentElement.classList.add('overdue'); countdownElement.innerHTML = `<b><font color="red">已超时${overdueHours}时${overdueMinutes}分${overdueSeconds}秒</font></b>`; } else if (t < -8 * 60 * 60 * 1000) { countdownElement.parentElement.style.display = 'none'; } else { const d = Math.floor(t / (1000 * 60 * 60 * 24)); if (d >= 3) { countdownElement.innerHTML = `${d} 天`; } else if (d >= 1) { const hours = Math.floor((t / (1000 * 60 * 60)) % 24); countdownElement.innerHTML = `<b><font color="#ffb6c1">${d} 天 ${hours} 小时</font></b>`; } else { const hours = Math.floor((t / (1000 * 60 * 60)) % 24); const m = Math.floor((t / (1000 * 60)) % 60); const s = Math.floor((t / 1000) % 60); countdownElement.innerHTML = `<b><font color="red">${hours} 小时 ${m} 分 ${s} 秒</font></b>`; } } } }); } setInterval(() => { renderHeaderInfo(); updateCountdowns(); }, 1000); renderHeaderInfo(); renderCountdowns(); </script>
文章目录