首页 > 解决方案 > 如何在对象列表中每 180 天生成一个唯一编号

问题描述

所以我有带有 aint和 a 的对象DateTime,我必须将它们插入到 a 中list。日期是已知的,但对于该日期的每 180 天,int 必须是唯一的。

如果日期是: ,则每 180 的数字应该是

01.01.2019 - 1,

01.03.2019 - 2,

01.05.2019 - 3,

02.05.2019 - 4,

02.07.2019 - 1,(因为自 01.01.2019 起已过去 180,所以它可以再次为 1)

03.07.2019 - 5 等..

标签: c#datetime

解决方案


如果列表中的日期是唯一的,并且您不关心从一开始的连续数字,那么您可以使用此功能:

public int GetDateId(DateTime date)
{
    return (int)TimeSpan.FromTicks(date.Ticks).TotalDays % 180;
}

它将给定的日期转换为天数并将计数除以 180。余数是每个日期的唯一数字。


推荐阅读