如何将TimeSpan转换为INT类型?

Autyan 2010-03-06 01:13:45
做一个程序,需要以某一天为起点,计算单双周,我的思路是以时间差对7求模的方式根据摸的数值来确定周数以及单双周. 但是最后对TimeSpan进行计算的时候系统提示说TimeSpan无法转换为INT类型. 代码如下:

public class WeekPro
{
DateTime StartDate = new DateTime(2010, 02, 22);
public String DetectWeek()
{
String WeekDetect;
TimeSpan DayDf = DateTime.Today - StartDate;
int DayDfInt = Convert.ToInt32(DayDf);
if (DayDfInt % 7 != 0)
{
DayDfInt = DayDfInt / 7 + 1;
}
else
{
DayDfInt = DayDfInt / 7;
}
if (DayDfInt / 2 == 0)
{
WeekDetect = "Double";
}
else
{
WeekDetect = "Single";
}
return WeekDetect;
}

public string DetectWeek(int Days)
{
String WeekDetect;
TimeSpan DayDf = DateTime.Now.AddDays(Days) - StartDate;
int DayDfInt = Convert.ToInt32(DayDf);
if (DayDfInt % 7 != 0)
{
DayDfInt = DayDfInt / 7 + 1;
}
else
{
DayDfInt = DayDfInt / 7;
}
if (DayDfInt / 2 == 0)
{
WeekDetect = "Double";
}
else
{
WeekDetect = "Single";
}
return WeekDetect;
}

public string DetectWeek(DateTime AssDays)
{
String WeekDetect;
TimeSpan DayDf = AssDays - StartDate;
int DayDfInt = Convert.ToInt32(DayDf);
if (DayDfInt % 7 != 0)
{
DayDfInt = DayDfInt / 7 + 1;
}
else
{
DayDfInt = DayDfInt / 7;
}
if (DayDfInt / 2 == 0)
{
WeekDetect = "Double";
}
else
{
WeekDetect = "Single";
}
return WeekDetect;
}
}
...全文
500 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
brookmill 2010-03-06
  • 打赏
  • 举报
回复
DateTime.Today 还有 StartDate 都是DateTime类型的,其中不但包括了日期而且包括了时间,相减得到的TimeSpan同样也是包括了日期时间的,所以不能直接转换成int。

这样就可以看明白,输出的不是日期,而是日期加时间。感觉这里的Today有点误导
Console.WriteLine(DateTime.Today);
brookmill 2010-03-06
  • 打赏
  • 举报
回复
Convert.ToInt32(DayDf.Days);

110,566

社区成员

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

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

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