我目前正在开发一个 api,他们以这种格式向我发送 str 范围:“1-5,10-25,27-30”,我需要添加或删除数字以保存格式。
如果他们给我发送“1-5,10-25,27-30”而我删除“15”,结果必须是“1-5,10-14,16-25,27-30”,如果他们发送给我“ 1-5,10-25,27-30" 并且我添加了 "26" 结果必须是 "1-5,10-30"
我一直在尝试将整个范围转换为数字列表,删除目标并再次转换它,但这样做很慢,因为他们发送 8 位数字,所以它不是最好的方法
我怎样才能做到这一点?是一个使用这种格式的库吗?
谢谢!
我在 Django 中查找重叠的日期范围时遇到问题。我有两个模型 ,reunion它有一个日期范围:
class reunion(models.Model):
resource = models.ForeignKey(resource, on_delete=models.CASCADE)
start = models.DateTimeField()
end = models.DateTimeField()
title = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
和resource模型:
class resource (models.Model):
site = models.ForeignKey(site, on_delete=models.CASCADE)
name = models.CharField(max_length=60)
def isAvaible(self, endDate, initialDate):
try:
self.reunion_set.get(Q(start__lt=endDate) | Q(end__gt=initialDate))
return False
except:
return True
Run Code Online (Sandbox Code Playgroud)
当我需要在特定日期范围内进行新的聚会时,我需要找到不重叠的资源,因此我使用以下方法:
def getAvaibleAccount(initialDate, endDate):
avaibleResources = resource.objects.all()
for avaibleResource in avaibleResources:
if avaibleResource.isAvaible(initialDate,endDate):
return avaibleResource
return None
Run Code Online (Sandbox Code Playgroud)
但我的代码表示日期范围: (12/30/2019 11:00 - 12/30/2019 12:00) 与 (12/31/2019 11:30 - 12/31/2019 12:30) 重叠如果只是比较时间而不是日期。我已经搜索了很多,但没有任何运气。
我的错误在哪里?
我将日期作为字符串获取并用 解析它们 …