求一个最为简单的办法:(得到指定月份后返回其最大值、最小值)

lgqTiger 2004-08-08 02:29:06
我想做一个函数接受例如:"2004-05"
这样的字符串向通过我的函数得到他的
最大值和最小值:例如:"2004-05-01"、"2004-05-30"

public DataTime CheckMaxTime(string time)
{
....//怎么写?
}

public DataTime CheckMinTime(string time)
{
....//怎么写?
}
...全文
206 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgqTiger 2004-08-08
  • 打赏
  • 举报
回复
经过调试 chNET(有神论者)
的方法最为简单,因为只要得到当月的最大
日数就可以了。
然而
二、三楼的方法就没有考虑到如果
遇到跨年度的话,就必须调整年份
所以就显得比较复杂了。

[lgqTiger]
chNET 2004-08-08
  • 打赏
  • 举报
回复
public DateTime CheckMinTime(string time)
{
DateTime m_Date = DateTime.Parse(time + "-" + "01");
return m_Date;
}
chNET 2004-08-08
  • 打赏
  • 举报
回复
简单写几句

public DateTime CheckMaxTime(string time)
{
DateTime m_Date = DateTime.Parse(time + "-" + "01");
int m_Days = DateTime.DaysInMonth(m_Date.Year,m_Date.Month);

m_Date = DateTime.Parse(time + "-" + m_Days.ToString());
return m_Date;
}
jkflyfox 2004-08-08
  • 打赏
  • 举报
回复
2楼的方法不错噢
得到月份5,然后最小值为5月1号,最大值为5月加1个月(即6月)的1号减一天,得到5月31号。
jkflyfox 2004-08-08
  • 打赏
  • 举报
回复
通过输入的字符串得到年,月,如得到string sYear="2004",sMonth="05",
然后得到string sTime=sYear+sMonth+"01";
DateTime dt=DateTime.Parse(sTime);
int iMaxDays=System.DateTime.DaysInMonth(dt.Year,dt.Month);
DateTime dtMax=new DateTime(dt.Year,dt.Month,iMaxDays);
DateTime dtMin=new DateTime(dt.Year,dt.Month,1);
则CheckMaxTime返回dtMax.ToShortDateString();
CheckMinTime返回dtMin.ToShortDateString();





lgqTiger 2004-08-08
  • 打赏
  • 举报
回复
具体一点吧!
jackie615 2004-08-08
  • 打赏
  • 举报
回复
简单点的:
得到月份-->5?
最小值当然是2004-05-01---date1
可以得到2004-06-01----date2

iMax = datediff('d',date1,date2)----------最大天数

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧