c# – 表示具有32作为Day的最大值的日期

前端之家收集整理的这篇文章主要介绍了c# – 表示具有32作为Day的最大值的日期前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用sql server 2005在asp.net中构建应用程序.在我的应用程序中,我必须表示很多日期和日期是尼泊尔语(Bikram sambhat),其中一个月的最大日数可以是32.

那么在sql server中代表日期的最佳选择是什么,这样32个可以放在日期值&这可以很容易地比较(操纵)在sql server以及asp.net?

解决方法

从尼泊尔到公历没有一个简单的转换.有两种想法:

>需要显示尼泊尔的日期
>需要操纵(例如,找到月,日等之间的差异)

第一个是容易的 – 作为varchar存储
第二个不是.如果您想知道2个尼泊尔日期之间的差异,您可以将日期作为公历的第二个日期存储,并在其间使用datediff / dateadd(day).然而,dateadd(月)在这里将无济于事,除非您想知道公历日期的2个尼泊尔日期的差异 – 不常见.

听起来就像存储在varchar中,并且有一个用于尼泊尔日期的图书馆,无论是在前端还是作为CLR,都会更好地下降.

它可能有助于转换具有相应公历日期的完全实现的尼泊尔日期表,因此布局将是

NepaliYear   NepaliMonth   NepaliDay  Gregorian
x            4             2          2014-21-23
etc

但是我不确定这将有助于(尼泊尔语)日期数学超越转换 – 只有在sql Server中需要这样的转换.

编辑

@ pst的评论

有理由喜欢VARCHAR到datetime.我假设频率,大部分的活动是读/写一个尼泊尔日期 – 它被存储和读取为一个VARCHAR – 没有转换.如果且仅当需要日期数学时,它涉及图书馆 – 在这种情况下,您调用转换,只有当您需要任何时间的公历相当于.如果你想要的是在NepalDate / scalar或NepaliDate / NepaliDate之间的数学 – 再次,datetime不提供任何好处 – 它不能在一个月内处理第32天.

猜你在找的C#相关文章