python - 最大的小日期
问题描述
我有两个日期列,假设 A 和 B 在两个单独的表中。A 包含测试日期的信息,B 列包含工厂校准的日期。我想提取自上次校准工厂以来已经过去了多少天的信息。
例如:
A=['2020-02-26', '2020-02-27', '2020-02-28', '2020-02-29']
B=['2020-02-24', '2020-02-28']
Days_Passed
自上次校准以来对应A
于[2,3,0,1]
解决方案
如果 date in A
and B
be in order,这可以在O(n+m)
wheren
和m
are the length of A
and中完成B
。尽管您没有提到编程语言,但这是 C# 中的实现
主要部分:
foreach (var testedDate in testedDates)
{
if (nextCalibratedDate.HasValue && (testedDate - nextCalibratedDate.Value).Days >= 0)
{
Console.WriteLine((testedDate - nextCalibratedDate.Value).Days);
calibratedDate = nextCalibratedDate.Value;
if (enumerator.MoveNext())
{
nextCalibratedDate = (DateTime?)enumerator.Current;
}
}
else
{
Console.WriteLine((testedDate - calibratedDate).Days);
}
}
这是完整的代码:
public static void Main(string[] args)
{
string[] A = new[] { "2020-02-26", "2020-02-27", "2020-02-28", "2020-02-29" };
string[] B = new[] { "2020-02-24", "2020-02-28" };
var testedDates = A
.Select(x => DateTime.Parse(x))
.ToArray();
var calibratedDates = B
.Select(x => DateTime.Parse(x))
.ToArray();
var enumerator = calibratedDates.GetEnumerator();
enumerator.MoveNext();
var calibratedDate = (DateTime)enumerator.Current;
DateTime? nextCalibratedDate = default;
if (enumerator.MoveNext())
{
nextCalibratedDate = (DateTime?)enumerator.Current;
}
foreach (var testedDate in testedDates)
{
if (nextCalibratedDate.HasValue && (testedDate - nextCalibratedDate.Value).Days >= 0)
{
Console.WriteLine((testedDate - nextCalibratedDate.Value).Days);
calibratedDate = nextCalibratedDate.Value;
if (enumerator.MoveNext())
{
nextCalibratedDate = (DateTime?)enumerator.Current;
}
}
else
{
Console.WriteLine((testedDate - calibratedDate).Days);
}
}
}
推荐阅读
- aws-cdk - CDK 不更新
- python - 为什么我不能在此代码中输出超过 59 个字符?
- kubernetes - 如何增加 Terraformed EKS 节点的体积
- vue.js - 使用 vuex 插入本地存储
- ruby-on-rails - 在 ruby on rails 中更新 openpay 中的现有卡
- reactjs - SVG 符号使用 href(使用 Font Awesome、React 和 TypeScript)
- reactjs - Chakra UI 中的全局样式
- c - 为什么编译时会出现这个错误如何解决函数的隐式声明?
- javascript - 按下浏览器停止加载时如何删除 Thymeleaf 和 Spring-Boot 表单上的微调器
- python - python - 如何在Python中创建一个在unigrams之前对ngrams进行评分的函数?