C# 函数使用DateTime.DayOfYear属性获取介于1和N之间的值

C# 函数使用DateTime.DayOfYear属性获取介于1和N之间的值,c#,sql-server,algorithm,datetime,modulo,C#,Sql Server,Algorithm,Datetime,Modulo,我正在开发一个应用程序,它有一个包含N行的表。我正在使用C#和SQL Server 我必须每天检索不同的行。例如,在12月22日,我必须检索第1行。12月23日,我必须取回第2排,等等 我需要一个函数,它返回一个从1到N的数字,使用属性来获取它 Maaybe我需要像这样做(DateTime.DayOfYear mod N),来做我想做的事情 我必须做什么?使用DateTime.ToOADate()获取数值 var today = DateTime.Today.ToOADate(); return

我正在开发一个应用程序,它有一个包含N行的表。我正在使用C#和SQL Server

我必须每天检索不同的行。例如,在12月22日,我必须检索第1行。12月23日,我必须取回第2排,等等

我需要一个函数,它返回一个从1到N的数字,使用属性来获取它

Maaybe我需要像这样做
(DateTime.DayOfYear mod N)
,来做我想做的事情


我必须做什么?

使用
DateTime.ToOADate()
获取数值

var today = DateTime.Today.ToOADate();
return today % N;
如果您想在SQL查询中执行此操作,我相信会有类似的函数,如
ToOADate()

有关OADate()的详细信息,请参阅以下文档


只需将c#函数的结果作为参数传递给sql命令,您就可以开始了。

希望行是随机的,还是当天始终相同。即12月23日将始终返回2?N有多大?它比365大还是更大?关于闰年你想做什么?我想得到第一排1,明天第2排,下一排3,…,下一排N,然后从第1排重新开始。我不想在同一天得到同一行。示例输入和预期输出?简单输入:一年中的某一天。示例输出:一个介于1和N之间的数字。感谢您投下a的反对票,不知道为什么。很有启发性。
var today = DateTime.Now().DayOfYear;
return today % N + 1;

This will get you a number between 1 and N.  If you don't use the + 1 it will be between 0 and N - 1.  If your SQL Server has N rows and an identity column you can just

select *
from my_table
where my_parameter = my_identity;