获取当前年月日的 n 个月前是 哪年哪月那日!
2004-11-10 23:21
302 查看
由于项目的特殊需要,对于日期类System.DateTime小小的研究了一下,它的通用的,常用的方法就不说了,在MSDN更加详细的说明。
问题来源:实现一个查询,要查询系统当天的前1周,前2周,前1个月,前2个月,前3个月,前6个月的数据!
显然,当天的日期和时间可以用System.DateTime.Now,那么前几周,前几个月是哪年的几月几号怎么确定呢? 查了System.DateTime有一个很好的方法
public DateTime Subtract(
TimeSpan value );
这个可以得到当前日期的几天之前是哪年的几月几号!So good!
那么前1周,前2周,就用7天前,14天前就搞定了!
接下来月份怎么处理呢?一个月是多少天,是不确定的,与年有紧密关系,所以Microsoft想的非常周到,提供了一个优秀的方法,可以知道某年某月有多少天:
public static int DaysInMonth(
int year,
int month
);
那么现在只要确定一个月前是多少天以前就可以了!呵呵,思考了一下,写了个递归算法,基本上已经实现了需求!
欢迎大家提出更好的算法,或者方法、渠道!
private void GetMonthDay( int iYear, int iMonth, int iTimes)
// 条件非法,不需要计算
if(iTimes <= 0)
return;
if(iMonth == 1)
iMonth = 12;
iYear = iYear - 1;
}
else
iMonth = iMonth - 1;
iYear = iYear;
}
if(iTimes == 1)
iPassDays += System.DateTime.DaysInMonth(iYear,iMonth);
}
else
iPassDays += System.DateTime.DaysInMonth(iYear,iMonth);
GetMonthDay(iYear,iMonth,iTimes-1);
}
}
问题来源:实现一个查询,要查询系统当天的前1周,前2周,前1个月,前2个月,前3个月,前6个月的数据!
显然,当天的日期和时间可以用System.DateTime.Now,那么前几周,前几个月是哪年的几月几号怎么确定呢? 查了System.DateTime有一个很好的方法
public DateTime Subtract(
TimeSpan value );
这个可以得到当前日期的几天之前是哪年的几月几号!So good!
那么前1周,前2周,就用7天前,14天前就搞定了!
接下来月份怎么处理呢?一个月是多少天,是不确定的,与年有紧密关系,所以Microsoft想的非常周到,提供了一个优秀的方法,可以知道某年某月有多少天:
public static int DaysInMonth(
int year,
int month
);
那么现在只要确定一个月前是多少天以前就可以了!呵呵,思考了一下,写了个递归算法,基本上已经实现了需求!
欢迎大家提出更好的算法,或者方法、渠道!
private void GetMonthDay( int iYear, int iMonth, int iTimes)
// 条件非法,不需要计算
if(iTimes <= 0)
return;
if(iMonth == 1)
iMonth = 12;
iYear = iYear - 1;
}
else
iMonth = iMonth - 1;
iYear = iYear;
}
if(iTimes == 1)
iPassDays += System.DateTime.DaysInMonth(iYear,iMonth);
}
else
iPassDays += System.DateTime.DaysInMonth(iYear,iMonth);
GetMonthDay(iYear,iMonth,iTimes-1);
}
}
相关文章推荐
- 汇编的初步总结
- 慎用DataGrid的CurrentRowIndex操作DataTable
- 现在整天无所事事
- 一个WINFORM上面有两个DataGrid,当选中其中一个的时候,怎么让另一个CurrentRowIndex变成空?
- 《设计模式解析》第4章 一个标准的面向对象解决方案
- 今天面试IBM CSDL
- 食指:相信未来
- CASSINI源代码分析(1)
- 对类的理解
- APPFUSE中使用CLOB类型
- 2004-11-10 IBM 面试记
- 老大娘摔倒了,中国(大陆 台湾 香港)美帝的不同态度
- 从前
- IIS 5 和 IIS 6 的安全性差异
- php实现多session并发运行
- VC/MFC Q&A 200410
- VC/MFC Q&A 200410
- 参考书籍列表
- PHP4(windows版本)中的COM函数
- 破解Session cookie的方法