[周期]根据当前时间计算每周星期几、每月几号、每年几月几日的执行时间

大模型时间理解缺陷与工程化应对策略 时间理解是人工智能处理现实世界事件的基础能力,涉及绝对时刻解析、相对时间推演、时区换算和跨日历转换等核心任务。其本质是将离散文本符号映射到连续、刚性、周期性的物理时间系统,依赖具身认知与确定性约束,而当前主流大模型受限于词元化割裂、Transformer架构缺乏时序刚性、预训练目标忽略时间逻辑,导致在‘夏令时切换’‘农历转换’等场景准确率普遍低于50%。技术价值在于保障智能客服、IoT调度、医疗文书与金融事件分析等关键系统的时序鲁棒性。本文聚焦可落地的工程解法:正则+规则引擎的时间字段剥离、轻量级SQLit 阅读详情

1、每周。例如计算每周一的时间。

2、每月。例如计算每月15号的时间。

3、每年。例如计算每年5月20号的时间。

<span style="white-space:pre">			</span>String RWFKSJ = "";    //任务反馈时间
			String RWKSSJ = "";    //任务开始时间
			String SJTZ = "";
			SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
			Calendar cal = Calendar.getInstance(); // java.util包
			Date nowdate = null;  
			if(!"".equals(ZQ)){
				//获取当前日期
				String StrnowDate = df.format(new Date());
				if("每周".equals(ZQ)){
					SJTZ = request.getParameter("SJTZWEEK")==null ?"": request.getParameter("SJTZWEEK");
					//获取当前 日期所对应的周X。获取星期Y。
					int nowday = getWeekday(userName,StrnowDate);
					int zqday = getNum(SJTZ);
					String Strzqdate = "";
					if(zqday>=nowday){ //若x《y。则计算周y的时间M
						cal.add(Calendar.DATE, zqday-nowday); // 日期减 如果不够减会将月变动
						Strzqdate = df.format(cal.getTime());
					}else { //若x》= y。则计算周y+7天的时间M yyyy年-mm月-dd日
						cal.add(Calendar.DATE, zqday+7-nowday); // 日期减 如果不够减会将月变动
						Strzqdate = df.format(cal.getTime());
					}
					nowdate = df.parse(StrnowDate); 
					cal.setTime(nowdate); 
					//cal.add(Calendar.DATE , FKSJD); // 日期减 如果不够减会将月变动
					Date jsDate = df.parse(df.format(cal.getTime()));
					Date zqDate = df.parse(Strzqdate);
					if(zqDate.after(jsDate)||zqDate.equals(jsDate)){
						RWKSSJ = df.format(zqDate);
					}else{
						RWKSSJ = getDayDate(zqDate, jsDate);
					}
					
					Date rwkssjdate = df.parse(RWKSSJ);
//					cal.setTime(rwkssjdate);
//					cal.add(Calendar.DATE, -XFSJD);
//					RWXFSJ = df.format(cal.getTime());
					cal.setTime(rwkssjdate);
					cal.add(Calendar.DATE, FKSJD);
					RWFKSJ = df.format(cal.getTime());
				}else if("每月".equals(ZQ)){
					SJTZ = request.getParameter("SJTZMONTH")==null ?"": request.getParameter("SJTZMONTH");
					//获取到周期 每月 几号 几天后    8号  10天后
					//获取当前月份
					//则当月的周期时间为当月+几号
					//获取当前日期+10天后的时间
//					Date jsDate = cal.getTime();
					String month = "";
					if(cal.get(Calendar.MONTH)+1<10){
						month = "0"+(cal.get(Calendar.MONTH)+1);
					}else{
						month = ""+(cal.get(Calendar.MONTH)+1);
					}
					String StrDate = cal.get(Calendar.YEAR) +"-" + month +"-" + SJTZ.replaceAll("[^0-9]","") ;
					
					Date zqDate = df.parse(StrDate);
					Date jsDate = df.parse(df.format(cal.getTime()));
					if(zqDate.after(jsDate)||zqDate.equals(jsDate)){
						RWKSSJ = df.format(zqDate);
					}else{
						RWKSSJ = getMonthDate(zqDate, jsDate);
					}
					
					Date rwkssjdate = df.parse(RWKSSJ);
					cal.setTime(rwkssjdate);
					cal.add(Calendar.DATE, FKSJD); // 日期加 如果不够加会将月变动
					RWFKSJ = df.format(cal.getTime());
				}else if("每年".equals(ZQ)){
					String SJTZ1 = request.getParameter("SJTZYEAR1")==null ?"": request.getParameter("SJTZYEAR1");
					String SJTZ2 = request.getParameter("SJTZYEAR2")==null ?"": request.getParameter("SJTZYEAR2");
					SJTZ = SJTZ1 +"-"+ SJTZ2;
					//将日期拼接成 yyyy年mm月dd日
					String hqrqStr = cal.get(Calendar.YEAR) +"-"+ SJTZ1.replaceAll("[^0-9]","") +"-"+ SJTZ2.replaceAll("[^0-9]","") ;
					Date zqDate = df.parse(hqrqStr);
					Date jsDate = df.parse(df.format(cal.getTime()));
					if(zqDate.after(jsDate)||zqDate.equals(jsDate)){
						RWKSSJ = df.format(zqDate);
					}else{
						RWKSSJ = getYearDate(zqDate, jsDate);
					}
					Date rwkssjdate = df.parse(RWKSSJ);
					cal.setTime(rwkssjdate);
					cal.add(Calendar.DATE, FKSJD); // 日期加 如果不够加会将月变动
					RWFKSJ = df.format(cal.getTime());
				} else {
					obj.put("success", false);
					obj.put("msg", "操作失败!周期类型["+ZQ+"]不存在!");
				}
			}else{
				obj.put("success", false);
				obj.put("msg", "操作失败!周期为空!");
			}
<pre name="code" class="java">//实现给定某日期,判断是星期几
    public static int getWeekday(String userName,String date){//必须yyyy-MM-dd
	    SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
	    SimpleDateFormat sdw = new SimpleDateFormat("E");
	    Date d = null;
	    int num = 0;
	    try {
	    	d = sd.parse(date);
	    	String day = sdw.format(d);
	    	num = getNum(day);
	    } catch (ParseException e) {
	    	Tools.errorList(e, userName);
	    }
		return num;
    }
<pre name="code" class="java"><span style="white-space:pre">	</span>/**
	 * 根据周几得出数字
	 * @param day
	 * @return
	 */
	public static int getNum(String day){
		if ("星期一".equalsIgnoreCase(day))
            return 1;
        else if ("星期二".equalsIgnoreCase(day))
            return 2;
        else if ("星期三".equalsIgnoreCase(day))
            return 3;
        else if ("星期四".equalsIgnoreCase(day))
            return 4;
        else if ("星期五".equalsIgnoreCase(day))
            return 5;
        else if ("星期六".equalsIgnoreCase(day))
            return 6;
        else if ("星期日".equalsIgnoreCase(day))
            return 7;
        return 0;
	}
<pre name="code" class="java"><span style="white-space:pre">	</span>/**
	 * 获取下次执行时间
	 * @param zqDate
	 * @param jsDate
	 * @return
	 */
	@SuppressWarnings("static-access")
	public String getDayDate(Date zqDate,Date jsDate){
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
		if(zqDate.after(jsDate)){
			return df.format(zqDate);
		}else{
			Calendar cal = Calendar.getInstance(); // java.util包
			cal.setTime(zqDate);
			cal.add(cal.DATE, 7);
			zqDate = cal.getTime();
			return getDayDate(zqDate, jsDate);
		}
	}
<pre name="code" class="java"><span style="white-space:pre">	</span>@SuppressWarnings("static-access")
	public String getMonthDate(Date zqDate,Date jsDate){
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
		if(zqDate.after(jsDate)){
			return df.format(zqDate);
		}else{
			Calendar cal = Calendar.getInstance(); // java.util包
			cal.setTime(zqDate);
			cal.add(cal.MONTH, 1);
			zqDate = cal.getTime();
			return getMonthDate(zqDate, jsDate);
		}
	}
<pre name="code" class="java"><span style="white-space:pre">	</span>private String getYearDate(Date zqDate, Date jsDate) {
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
		if(zqDate.after(jsDate)){
			return df.format(zqDate);
		}else{
			Calendar cal = Calendar.getInstance(); // java.util包
			cal.setTime(zqDate);
			cal.add(cal.YEAR, 1);
			zqDate = cal.getTime();
			return getYearDate(zqDate, jsDate);
		}
	}











excel自动计算周次及周起始时间 最近在制作一个报表,里面需要计算某日是属于当年的多少周,并且要显示这周的起始日期和截止日期,本以为网上会有很多,可是找来找去,要么是要用WEEKNUM()这函数,需要加分析工具库,通用性不是很强,要么就不是很完善,没有考虑一些特殊情况。为此特意花心思研究了一番,终于在别人的基础上修改了一份自己满意的!不敢独享,给大家提供参考吧! 立即下载

相关推荐

保姆级教程:用Docker一键部署vLLM大模型推理服务(附常见报错解决方案)

本文提供了一份详细的Docker化vLLM大模型推理服务部署指南,涵盖从环境准备到性能调优的全流程。通过容器化技术解决大语言模型部署中的显存利用率、吞吐量等核心问题,并附常见报错解决方案,帮助开发者快速构建高效、可扩展的AI推理服务。

weixin_29248313的博客 489

开发笔记 | JAVA获取微信步数+日周月排行榜的实现

JAVA获取微信步数+排行榜的实现

qq_37630282的博客 3104

使用 Python 获取网络数据

本文介绍了 Python 获取网络数据、使用 requests 库、编写爬虫代码以及使用 IP 代理的方法。Python 的 requests 库非常方便,可以帮助我们快速访问网络资源。编写爬虫程序需要掌握正则表达式、HTTP 协议等知识,同时需要注意爬取速度和频率,以避免对被爬取网站造成负担。最后,使用 IP 代理可以帮助我们隐匿身份,保护我们的网络安全。

互联说 2695

Java之美_获取某一时间段特定星期几的日期

[code="java"]/** * 获取某一时间段特定星期几的日期 * @author finder.zhou */ public class WeekDayUtil { public static void main(String[] args) { getDates("2013-04-01", "2014-04-14","星期一|星期二|星期日"); ...

Finder的专栏 544

Hcaptcha验证码破解深度解析:从环境检测到n值算法的攻防实战

本文深入解析Hcaptcha验证码的攻防技术,从环境检测到n值算法的全面突破策略。详细介绍了浏览器指纹模拟、图像识别工程化解决方案及协议层逆向分析,为安全研究人员提供高效破解Hcaptcha的实战指南。

weixin_42563415的博客 371

c# U盘禁用---守护进程(插入,拔出,卸载等操作)

一、简介 传统的对U盘禁用,我们多采用修改注册表的方式,详情参考:https://blog.youkuaiyun.com/qq_25372599/article/details/79815407;本文将介绍一种其他的方式–后台守护程序。其原理非常简单:当守护程序检测到U盘的插入信号,我们自动卸载U盘,致使系统无法识别U盘,达到禁用U盘的效果。 二、程序设计 2.1 变量定义 strin...

星星之火燃亮码空 2845

Android:系统日历同步日程

1、权限 <uses-permission android:name="android.permission.WRITE_CALENDAR" /> <uses-permission android:name="android.permission.READ_CALENDAR" /> 2、动态权限Activity中 if (ContextCompat.checkSelfPermission(this, Manifest.perm...

baidu_24743861的博客 1785

PY32F406K1CU6 FLASH模拟EEPROM

摘要:本文介绍了基于STM32 FLASH模拟EEPROM的实现方法。头文件flash.h定义了FLASH页大小(256字节)、用户存储区域(4页)及地址范围,提供了等待周期配置和地址校验宏,声明了EEPROM初始化、读写操作等函数接口。源文件flash.c实现了具体功能:配置FLASH等待周期(144MHz需3WS)、页读写擦除操作,以及EEPROM初始化(解锁-擦除-验证-锁定)和缓冲区读写功能。其中写操作采用"读页→更新→擦除→编程"的流程,确保数据安全写入。该方案适用于需要非易失

sam的博客 194

计算日期公式(根据年月日算星期几)

# include &amp;lt;iostream&amp;gt; # include &amp;lt;string.h&amp;gt; using namespace std; int CaculateWeekDay(int y, int m, int d) { int week = -1; if(m == 1 || m == 2) m += 12; week = (d+2*m+3...

MM_Silence 7385

基于C++的MMC仿真与PSCAD建模

MMC是一种基于模块化设计的多电平换流器,通常由若干个基本单元(子模块)组成。每个子模块包含一个电容和两个开关,通过控制开关的开闭,实现输出电压的级联和多电平化。高效率:由于开关频率较低,开关损耗小,效率高。高可靠性:模块化设计使得故障模块易于更换,提高了系统的可靠性。灵活扩展:可以通过增加或减少子模块的数量,方便地调整输出电压和功率。PSCAD(Power Systems Computer Aided Design)是广泛应用于电力系统仿真的专业软件,具有强大的建模和仿真能力。

qq_38334677的博客 295

华为OD机试真题 新系统【优化充电桩调度算法】

华为OD机试 新系统真题【优化充电桩调度算法】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【优化充电桩调度算法】

qq_45776114的博客 752

Quartz.Net定时任务时间表达式设置

Quartz.Net定时任务时间表达式设置 转载自 http://www.jsons.cn/articleinfo/280/ 记录接触.NET的学习路程 这些星号由左到右按顺序代表 : * * * * * * * 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否...

weixin_41561640的博客 1566

虚拟网络的“隐形盾”:C#如何用代码把DDoS踢出门?

本文分享了如何用C#防御DDoS攻击的实战经验。通过三种核心防御策略:1)基于IP的速率限制中间件,使用滑动时间窗口算法控制请求流量;2)自动IP封禁服务,通过特征检测识别恶意IP并加入黑名单;3)优化数据库连接池和HTTP客户端连接池,合理配置资源参数。文中提供了详细的C#代码实现,包括限流中间件、IP封禁服务和连接池优化方案,并分享了生产环境中的调优经验,如配合Redis实现分布式限流、使用fail2ban自动封禁等技巧,帮助开发者构建更健壮的防御体系。

墨夶的博客 328

获取字符串中数字,并计算指定时间的后几个月是几月几号

在做项目的时候遇见一个需求,要求知道会员卡种类,会员卡开始时间和会员卡使用有效周期自动得到会员卡到期时间。所以就出现了几个难点。一、有效周期写法不一定;二、如何获取使用周期内的数字;三、如何自动得到会员卡到期时间。以下就来解决一下这些问题: 一、规定周期输入格式:     var vperiod=$("#vperiod").val();     var pattern1=/^\d{1,2}个

she_smiled的博客 622

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

html中阳历生日转换成农历,农历转阳历换算(阴历和阳历生日转换器)

有的是用计算机编程来算的,本人想求一个农历换算成公历的计算公式,谢谢。因为公历(现在用的是格里历,以前还曾用儒列历)和中国农历都不是严格按一个公式计算得到的,所以两个历法没有直接的公式。 试图用一个简单的公式,而不利用许多.万年历换算——阴历阳历转换、公历农历对照表 提供万年历换算查询——智能转换阴历阳历、公历农历对照表!可以同时显示公历、农历、节气、国际…… 万年历- 公历农.请问谁知道阴历阳历...

weixin_35123329的博客 3411

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

时间戳转换日期(年月日 时分秒)

let date=new Date() y =date.getFullYear(); m =date.getMonth() + 1; d = date.getDate(); //时分秒 time=now.toTimeString().substr(0, 8) //小于10 添0 dateTime =y +"-" +(m < 10 ? "0" + m : m) + "-" +(d < 10 ? "0" + d : d)+time

xn的博客 675

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

GMT时间转换为当地时间的方法

1、取得当地时间与GMT时间的时间差   (new Date()).getTimezoneOffset()  //单位为分钟 2、GMT时间加上与当地时间的时间差   (new Date(GMTTime)) + (new Date()).getTimezoneOffset() * 60000 3、获得当地时间的毫秒数之后,转换为Date对象,之后调用Date对象的相关方法获取需要的数据。...

weixin_33851429的博客 801

计算从今天算起,100天以后是几月几号

13、计算从今天算起,100天以后是几月几号,并格式化成xxxx年x月x日的形式打印出来。 提示: 1)调用Calendar类的add()方法计算100天后的日期 2)调用Calendar的getTime() 方法返回Date类型对象 3)使用FULL格式的DateFormat对象,调用format() 方法格式化Date对象 import java.text.DateFormat; i

:)一位靓仔偶然路过的博客 4万+

根据当前日期推算星期一和星期天使几号。推算出一个完整的周

为什么80%的码农都做不了架构师?>>> ...

weixin_34125592的博客 451

根据日期计算当前时间为星期几

public static String dateToWeek(String datetime) { SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; Calendar cal = Calendar.getInstance(); // 获得一个日历

zhi_yy的博客 455

计算两个日期之间相差多少天,计算当前日期是星期几

完美世界编程题,计算两个日期之间经过了多少个零点和多少个星期四。 package wanmeishijie170926; /* *输入 2017/9/7 0:0:0 2017/9/21 0:0:0 输出 13,1 * */ import java.util.Scanner; public class Test1 { public static void main(Strin

say_haha的博客 2452

java定时器(每天定时执行 每月某天执行)

11

z_victoria123的博客 1万+

【转】几种任务调度的 Java 实现方法与比较

[b]简介:[/b] 综观目前的 Web 应用,多数应用都具备任务调度的功能。本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺点进行比较,目的在于给需要开发任务调度的程序员提供有价值的参考。 前言 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务...

little_bill的专栏 948

周期(实现了每天,每周,每月,每年的间隔一定时间重复执行的周期)

import java.util.Calendar; import java.util.Date; /** * 周期 * 实现了每天,每周,每月,每年的间隔一定时间重复执行的周期 * * // 每天2点执行1次 * Period.getDailyOncePeriod(2*60*60*1000); * // 每周3的5点执行1次 * Period.getWeeklyOncePeri

学海一粟 2969
上一篇: 根据公历时间计算农历时间
下一篇: [解析excel]解析03版xls和07版以上的xlsx
rage_angel
博客等级 码龄12年 7粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值