C# 计算两个时间相隔的周数
最近用到计算两个的日,周,月之间的相差数,半天没找到合适的计算连个时间之间周数的方法,大家帮忙解决一下。两个数的年份,月份可能都不一样。 --------------------编程问答-------------------- datetime.now.substract(起始时间)就是了
取其中的hour/minute/second/millisecond,也可以直接取totalmilliseconds就是总毫秒数 --------------------编程问答-------------------- 参考 --------------------编程问答--------------------
这个方法 我试过了,计算出来 还要再次计算之间周的相隔数,判断是否同年,同月 --------------------编程问答--------------------
我感觉还是先算出每个时间的具体年份和日期,然后算相差的日子。。。
这个没啥捷径可走吧? --------------------编程问答-------------------- 谁能贴短代给我 --------------------编程问答--------------------
谁能贴段代码给我 --------------------编程问答-------------------- 日期相减后除以7不就是周数吗? --------------------编程问答-------------------- 最简单的是:
DateTime dt1 = new DateTime(2010, 12, 8);--------------------编程问答--------------------
DateTime dt2 = new DateTime(2011, 1, 16);
TimeSpan span1 = dt2 - dt1;
Response.Write(span1.Days / 7 + "周");
--------------------编程问答--------------------
DateTime dt1 = new DateTime(2011,7,9);
DateTime dt2 = new DateTime(2011, 7, 1);
TimeSpan s = dt1 - dt2;
Console.WriteLine( s.Days / 7);
Console.ReadKey();
不是两个日期之间相差天数是多少周,比如:
DateTime DTOne = new DateTime(2011, 1, 5);
DateTime DTTwo = new DateTime(2011, 1, 10);
DTOne 和DTTwo 之间是相隔5天的,但是他们跨了两个周,就是“相隔1个周” --------------------编程问答-------------------- 那要看你的周是怎么定义的了?是过一个星期日,表示跨一个周吗? --------------------编程问答-------------------- 如2011-1-1在2011的第一周中,2011-1-5在2011的第二周中,他们跨了两个周的 --------------------编程问答--------------------
--------------------编程问答--------------------
class Program
{
static void Main(string[] args)
{
DateTime dt1 = new DateTime(2011,6,6);
DateTime dt2 = new DateTime(2011, 6, 7);
Console.WriteLine(week(dt1,dt2));
Console.ReadKey();
}
static int week(DateTime start, DateTime end) {
int count = 0;
DateTime p=start;
while (p < end) {
if (p.DayOfWeek == DayOfWeek.Sunday) count++;
p = p.AddDays(1);
}
return count;
}
}
过的周日的个数+1....不会写。。 --------------------编程问答-------------------- DTOne.DayOfWeek.ToString();
获取星期 不在同一周 加一 就可以了
--------------------编程问答--------------------
很好,谢谢 --------------------编程问答-------------------- timespan 来相减 然后转换 --------------------编程问答-------------------- TimeSpan t = d2.Subtract(d1).Duration();
int day = t.Days + 1 + (int)d1.DayOfWeek + (6 - (int)d2.DayOfWeek);
return day / 7; --------------------编程问答-------------------- 以前的
补充:.NET技术 , ASP.NET