油猴脚本:BOSS候选人简历工作履历时间自动计算显示

本文主要是介绍油猴脚本:BOSS候选人简历工作履历时间自动计算显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BOSS的候选人工作履历时间不计算,不符合我的查看习惯,很容易让那种经常跳槽的人简历通过,容易遗漏,特编写此程序!

使用前:
使用后:

代码如下:

// ==UserScript==
// @name         BOSS网页版辅助器(计算候选人工作经历时间)
// @namespace    hearts
// @version      0.3
// @description  计算时间段内的年月差,并添加到文本节点末尾,且有颜色标识,绿色是稳定3年以上,红色是频繁跳槽
// @author       You
// @match        https://www.zhipin.com/*
// @grant        none
// ==/UserScript==(function() {'use strict';var regex = /(\d{4}\.\d{2})\s*-\s*(\d{4}\.\d{2})|(\d{4}\.\d{2})\s*-\s*至今/g;var durationRegex = /\(\d+年\d+月\)/;function processTextNodes() {var textNodes = getTextNodes(document.body);console.log('找到的文本节点数量:', textNodes.length);textNodes.forEach(function(node) {var text = node.textContent;var spanExists = node.parentNode.querySelector('span.duration');if (spanExists || durationRegex.test(text)) {console.log('文本节点已经包含年月信息:', text);return;}var matches = text.match(regex);if (matches) {console.log('匹配到的时间段:', matches);var processed = {};matches.forEach(function(match) {if (!processed[match]) {processed[match] = true;var dates = match.split('-');var start = dates[0].trim();var end = dates[1] ? dates[1].trim() : new Date().toISOString().slice(0, 7).replace('-', '.');console.log('开始时间:', start, '结束时间:', end);if (end === '至今') {end = new Date().toISOString().slice(0, 7).replace('-', '.');}var startDate = new Date(start.replace('.', '-'));var endDate = new Date(end.replace('.', '-'));var diffYear = endDate.getFullYear() - startDate.getFullYear();var diffMonth = endDate.getMonth() - startDate.getMonth();var diff = diffYear * 12 + diffMonth;var yearMonth = `${Math.floor(diff / 12)}年${diff % 12}月`;console.log('计算出来的年月:', yearMonth);// 创建 span 元素来标识时间计算值和颜色var span = document.createElement('span');span.textContent = `(${yearMonth})`;span.classList.add('duration');// 创建一个空的文本节点,用来插入 span 元素的后面var emptyTextNode = document.createTextNode('');node.parentNode.insertBefore(span, node.nextSibling);node.parentNode.insertBefore(emptyTextNode, span.nextSibling);// 根据年限设置颜色var year = Math.floor(diff / 12);if (year < 1) {span.style.color = 'red';}else if (year >= 3) {span.style.color = 'green';}//else{span.style.color = 'green';}}});}});}function getTextNodes(root) {var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);var textNodes = [];var node;while (node = walker.nextNode()) {textNodes.push(node);}return textNodes;}processTextNodes();setInterval(processTextNodes, 2000);
})();

这篇关于油猴脚本:BOSS候选人简历工作履历时间自动计算显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/976713

相关文章

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti