向打工搬砖人致敬!
向打工搬砖人致敬996是打工人的归宿。!DOCTYPE html html head meta charsetutf-8 / meta nameviewport contentwidthdevice-width, initial-scale1 / title每日搬砖倒计时/title link hrefhttps://fonts.googleapis.com/css2?familyMerriweather:wght300;400;700familyNotoSansSC:wght300;400;700displayswap relstylesheet style * { box-sizing: border-box; } html, body { height: 100%; } body { margin: 0; font-family: Noto Sans SC, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif; background: linear-gradient(180deg, #f7f3ee 0%, #efe8df 100%); color: #38302a; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; display: flex; align-items: center; justify-content: center; padding: 48px 20px; position: relative; overflow: hidden; } /* 彩色氛围层模糊发光 */ .ambience { position: absolute; inset: 0; z-index: 1; pointer-events: none; mix-blend-mode: screen; opacity: 0.95; } .ambience .blob { position: absolute; border-radius: 50%; filter: blur(80px); transform: translate3d(0,0,0); opacity: 0.55; } .ambience .b1 { width: clamp(220px, 28vw, 520px); height: clamp(220px, 28vw, 520px); left: -12%; top: 6%; background: radial-gradient(circle at 30% 30%, rgba(255,140,120,0.95), rgba(255,90,110,0.65) 40%, rgba(255,90,110,0.0) 70%); animation: blobMove1 12s ease-in-out infinite; } .ambience .b2 { width: clamp(180px, 22vw, 420px); height: clamp(180px, 22vw, 420px); right: -8%; top: 18%; background: radial-gradient(circle at 20% 20%, rgba(120,180,255,0.9), rgba(160,120,255,0.6) 45%, rgba(160,120,255,0.0) 75%); animation: blobMove2 14s ease-in-out infinite; } .ambience .b3 { width: clamp(260px, 34vw, 680px); height: clamp(260px, 34vw, 680px); left: 10%; bottom: -18%; background: radial-gradient(circle at 70% 30%, rgba(120,255,190,0.9), rgba(90,200,170,0.55) 40%, rgba(90,200,170,0.0) 75%); animation: blobMove3 18s ease-in-out infinite; } keyframes blobMove1 { 0% { transform: translateY(0) scale(1) rotate(0deg); } 50% { transform: translateY(-18px) scale(1.06) rotate(6deg); } 100% { transform: translateY(0) scale(1) rotate(0deg); } } keyframes blobMove2 { 0% { transform: translateY(0) scale(1) rotate(0deg); } 50% { transform: translateY(22px) scale(1.05) rotate(-5deg); } 100% { transform: translateY(0) scale(1) rotate(0deg); } } keyframes blobMove3 { 0% { transform: translateY(0) scale(1) rotate(0deg); } 50% { transform: translateY(-28px) scale(1.08) rotate(3deg); } 100% { transform: translateY(0) scale(1) rotate(0deg); } } .container { position: relative; width: 100%; max-width: 980px; z-index: 2; } .card { background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(250,245,240,0.9)); border-radius: 14px; padding: 18px 26px; margin-bottom: 18px; box-shadow: 0 10px 30px rgba(51,40,30,0.06); border: 1px solid rgba(56,48,42,0.06); transform: translateY(6px); animation: cardIn 600ms ease both; } keyframes cardIn { from { opacity: 0; transform: translateY(18px) scale(0.995); } to { opacity: 1; transform: translateY(6px) scale(1); } } .header { text-align: center; padding: 22px 24px; background: transparent; border-bottom: 1px solid rgba(56,48,42,0.04); } .header-title { font-family: Merriweather, Noto Sans SC, serif; font-size: clamp(20px, 2.6vw, 30px); font-weight: 700; color: #372d24; letter-spacing: 0.4px; margin-bottom: 6px; } .header-sub { font-size: 13px; color: #7d6f5b; } .date { margin: 0 auto; width: 100%; color: #6b5f50; font-weight: 600; font-size: clamp(13px, 1.2vw, 15px); text-align: center; opacity: 0.95; } #times { margin: 8px auto; width: 100%; font-size: clamp(36px, 8vw, 72px); font-weight: 700; text-align: center; line-height: 1; font-family: Merriweather, Noto Sans SC, serif; background: linear-gradient(90deg, #ff9a76, #ff5fb8 25%, #7a9bff 60%, #44d7b6 100%); background-size: 200% 200%; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: gradientShift 6s linear infinite, floatText 4s ease-in-out infinite; text-shadow: 0 6px 18px rgba(68,55,44,0.08); } keyframes gradientShift { 0%{ background-position: 0% 50%; } 50%{ background-position: 100% 50%; } 100%{ background-position: 0% 50%; } } keyframes floatText { 0% { transform: translateY(0); } 50% { transform: translateY(-6px); } 100% { transform: translateY(0); } } #WorkFullYearDay { margin: 0 auto; width: 100%; color: #6b5f50; font-size: clamp(13px, 1.1vw, 15px); text-align: center; font-weight: 600; } .card.small { padding: 12px 20px; } media (max-width: 720px) { #times { font-size: clamp(28px, 10vw, 40px); } .header-title { font-size: 18px; } } media (max-width: 360px) { #times { font-size: clamp(24px, 12vw, 30px); } } media (prefers-reduced-motion: reduce) { .ambience .blob, #times, .card { animation: none !important; transition: none !important; } } /style script srchttps://code.jquery.com/jquery-3.7.0.min.js/script !-- script srchttps://ajax.aspnetcdn.com/ajax/jquery/jquery-3.7.0.min.js/script -- script srchttps://cdnjs.cloudflare.com/ajax/libs/jquery.countdown/2.2.0/jquery.countdown.min.js/script /head body div classambience aria-hiddentrue span classblob b1/span span classblob b2/span span classblob b3/span /div div classcontainer header classheader card rolebanner div classheader-title每日搬砖倒计时/div div classheader-sub努力工作健康生活/div /header div classcard div classdate/div /div div classcard times-card div idtimes/div /div div classcard small div idWorkFullYearDay/div /div /div script var jData_holiday null; var holiday_name null; var gloable_year new Date().getFullYear(); var gloable_month new Date().getMonth() 1; var gloable_day new Date().getDate(); function sendGetRequestXMLHttpRequest(url) { var xhr new XMLHttpRequest(); xhr.open(GET, url, true); xhr.onreadystatechange function () { if (xhr.readyState 4 xhr.status 200) { dealJsonData(xhr.responseText); } }; xhr.send(); } function dealJsonData(jsonData) { if (jsonData undefined) { return null; } jData_holiday JSON.parse(jsonData).holiday; } function isHoliday(cur_month, cur_day) { if (jData_holiday null) { return false; } month_day (cur_month 10 ? 0 cur_month : cur_month) - (cur_day 10 ? 0 cur_day : cur_day); if (month_day in jData_holiday) { holiday_name jData_holiday[month_day].name; isHolidays jData_holiday[month_day].holiday; return isHolidays; } return false; } function isBuBan(cur_month, cur_day) { if (jData_holiday null) { return false; } month_day (cur_month 10 ? 0 cur_month : cur_month) - (cur_day 10 ? 0 cur_day : cur_day); buban false; if (month_day in jData_holiday) { holiday_name jData_holiday[month_day].name; isHolidays jData_holiday[month_day].holiday; buban holiday_name.indexOf(补班) ! -1 ? true : false; } return buban; } function workingToHours(hours, minutes, endDate, endHours) { if (hours 9 || hours endHours) { $(#times).html(现在是休息时间!!!); } else if (hours 12 hours 13) { if ((hours 12 minutes 0) || (hours 13 minutes 30)) { $(#times).html(现在是午休时间!!!); } else { $(#times).countdown(endDate, function (event) { $(this).html(event.strftime(距离下班时间还有 %H:%M:%S)); }); } } else { $(#times).countdown(endDate, function (event) { $(this).html(event.strftime(距离下班时间还有 %H:%M:%S)); }); } } setInterval(function () { date new Date(); year date.getFullYear(); month date.getMonth() 1; day date.getDate(); week date.getDay(); hours date.getHours(); minutes date.getMinutes(); weekArr [日, 一, 二, 三, 四, 五, 六]; time 18:00:00; showTime year / (month 10 ? 0 month : month) / (day 10 ? 0 day : day) 星期 weekArr[week]; if (week 6) { time 16:00:00; } if (isBuBan(month, day)) { time 18:00:00; } endDate year / month / day time; // 计算距离 2023-03-20 的天数并显示在 .date 元素中 var target new Date(2023, 2, 20); // 月份从0开始2表示3月 var msPerDay 24 * 60 * 60 * 1000; // 仅按日期部分计算清除时分秒 var todayOnly new Date(year, month - 1, day); var diff Math.floor((todayOnly - target) / msPerDay); var diffText ; if (diff 0) { diffText diff 天; } else if (diff 0) { diffText 还有 Math.abs(diff) 天; } else { diffText 就是今天; } $(.date).html(showTime | 已入职: diffText); if ( year ! gloable_year || month ! gloable_month || day ! gloable_day || jData_holiday null ) { sendGetRequestXMLHttpRequest( https://timor.tech/api/holiday/year/ year / ); } //等待获取数据成功 if (jData_holiday null) { $(#times).html(Data Loading...); } else { calcFullYearWorkDay(); if (week 1 week 5) { //周一至周五 if (isHoliday(month, day)) { $(#times).html(今天是 holiday_name !!!); } else { workingToHours(hours, minutes, endDate, 18); } } else if (week 6) { //周六 if (isHoliday(month, day)) { $(#times).html(今天是 holiday_name !!!); } else { if (isBuBan(month, day)) { workingToHours(hours, minutes, endDate, 18); } else { workingToHours(hours, minutes, endDate, 16); } } } else { //周日 if (isHoliday(month, day)) { $(#times).html(今天是 holiday_name !!!); } else { if (isBuBan(month, day)) { workingToHours(hours, minutes, endDate, 18); } else { $(#times).html(今天是周日全天休息!!!); } } } } }, 1000); //年月日 实现某年某月某日是周几 function getDayOfWeek(year, month, day) { var date new Date(year, month - 1, day); return date.getDay(); } //年月 实现某年某月共有多少天 function getMonthofDay(year, month) { return new Date(year, month, 0).getDate(); } function calcFullYearWorkDay() { date new Date(); year date.getFullYear(); allWorkDay 0; holiday 0; //0:work 1:play daxiaozhou [0]; for (month 1; month 12; month) { for (day 1; day getMonthofDay(year, month); day) { if (isHoliday(month, day)) { //节假日 holiday holiday 1; } else if (isBuBan(month, day)) { //补班 allWorkDay allWorkDay 1; } else { //工作日 //周1~5 weekIdx getDayOfWeek(year, month, day); if (weekIdx 1 weekIdx 5) { allWorkDay allWorkDay 1; } //周六 if (weekIdx 6) { lastnum daxiaozhou[daxiaozhou.length - 1]; if (lastnum 1) { //work allWorkDay allWorkDay 1; daxiaozhou[daxiaozhou.length] 0; } else { //play holiday holiday 1; daxiaozhou[daxiaozhou.length] 1; } } //周日 if (weekIdx 0) { holiday holiday 1; } } } } $(#WorkFullYearDay).html( year 年上班共计 allWorkDay 天,休假 holiday 天 ); } /script /body /html

相关新闻

3分钟快速上手:如何用Python一键下载Gofile文件?

3分钟快速上手:如何用Python一键下载Gofile文件?

3分钟快速上手:如何用Python一键下载Gofile文件? 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 你是否曾经为了从Gofile.io下载文件而反复点击网页…

2026/7/19 9:48:08阅读更多 →
Vert.x高性能异步框架重构网盘直链解析服务:突破传统下载瓶颈的架构革新

Vert.x高性能异步框架重构网盘直链解析服务:突破传统下载瓶颈的架构革新

Vert.x高性能异步框架重构网盘直链解析服务:突破传统下载瓶颈的架构革新 【免费下载链接】netdisk-fast-download 聚合多种主流网盘的直链解析下载服务, 一键解析下载,已支持夸克网盘/uc网盘/蓝奏云/蓝奏优享/小飞机盘/123云盘等. 支持文件夹分享解析. 体…

2026/7/19 9:46:08阅读更多 →
2026在线抠图去背景保姆级教程:详细操作步骤+免费工具汇总

2026在线抠图去背景保姆级教程:详细操作步骤+免费工具汇总

日常修图、制作证件照、设计海报、处理电商素材时,抠图去背景是高频刚需操作。对于普通用户而言,无需安装专业修图软件、不用掌握复杂修图技巧,借助各类在线工具就能快速完成透明底抠图、更换背景等操作。2026年主流的在线抠图工具分为手机小…

2026/7/19 9:46:08阅读更多 →
Selene PageObject 模式实战:构建可维护的 Python Web 测试框架的完整指南

Selene PageObject 模式实战:构建可维护的 Python Web 测试框架的完整指南

Selene PageObject 模式实战:构建可维护的 Python Web 测试框架的完整指南 【免费下载链接】selene User-oriented Web UI browser tests in Python 项目地址: https://gitcode.com/gh_mirrors/sel/selene 想要构建可维护、可扩展的 Python Web 自动化测试框…

2026/7/19 15:21:06阅读更多 →
Python循环控制:while/continue/break原理与应用

Python循环控制:while/continue/break原理与应用

1. Python循环控制三剑客:while/continue/break深度解析刚接触Python循环时,我们往往只满足于让代码跑起来,却忽略了循环控制的艺术。while、continue和break这三个看似简单的关键字,实则是构建高效循环逻辑的基石。它们就像汽车驾…

2026/7/19 15:21:06阅读更多 →
flutter_percent_indicator完全指南:打造精美进度指示器的终极方案

flutter_percent_indicator完全指南:打造精美进度指示器的终极方案

flutter_percent_indicator完全指南:打造精美进度指示器的终极方案 【免费下载链接】flutter_percent_indicator Flutter percent indicator library 项目地址: https://gitcode.com/gh_mirrors/fl/flutter_percent_indicator 在Flutter应用开发中&#xff0…

2026/7/19 15:21:06阅读更多 →
Bloom架构深度剖析:Rust实现的高性能反向代理核心原理

Bloom架构深度剖析:Rust实现的高性能反向代理核心原理

Bloom架构深度剖析:Rust实现的高性能反向代理核心原理 【免费下载链接】bloom :cherry_blossom: HTTP REST API caching middleware, to be used between load balancers and REST API workers. 项目地址: https://gitcode.com/gh_mirrors/bloom/bloom Bloom…

2026/7/19 15:21:06阅读更多 →
瑞德克斯平台:聚焦细节,看看外汇行情信息呈现的关键标准

瑞德克斯平台:聚焦细节,看看外汇行情信息呈现的关键标准

外汇市场信息更新频繁,平台口碑的形成更依赖长期一致性:入口是否好找、说明是否前后一致、提示是否稳定出现。围绕瑞德克斯平台,下面从稳定体验与信息呈现等角度做一次正面观察。外汇相关信息更新频繁,平台将关键提示与解释呈现得…

2026/7/19 15:21:06阅读更多 →
Python基础语法速览:给C++程序员的快速入门

Python基础语法速览:给C++程序员的快速入门

上篇聊了Python在机器人开发中的定位。今天正式进入Python的学习。但这篇不是从零开始的Python教程。你是有C基础的人,很多编程概念已经懂了——变量、函数、循环、面向对象,这些不用重新学。你需要知道的是:Python和C有什么不同?…

2026/7/19 15:19:06阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:01:04阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:01:04阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:01:04阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:01:04阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:01:04阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:01:04阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/18 22:49:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/19 14:50:26阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/18 18:49:35阅读更多 →