编辑:(对不起,英语不是我的主要语言,我真诚地向所有阅读此问题的人道歉。)
我编辑了我的问题以解释我的问题。对不起。
我想比较两天。当我向其添加数据并将日期保存在一个文件time_was_send.txt
中时。
然后它应该与当月的第一天进行比较。如果确实如此,它将执行方法SendMail.sendDailyMail
。
我遇到getfirstdayoflastmonth()方法的问题,它总是减去1个月,而我希望它在当月的第一天。
我只想比较它们是否在同一天和月份 - 这一年并不重要。
所以我想比较这样的事情。
26/12
- 在time_was_send.txt
时从文件getfirstdayoflastmonth(currentDay)
与currentDay = 1/12
读取。
为了帮助您理解,这是我的代码,
string path = "C:\\time_was_send.txt";
string timeFromFile = ReadFromFile(path);
DateTime m_timeFromFile = DateTime.ParseExact(timeFromFile, "dd-MM-yyyy", null);
string s = now.ToString("dd-MM-yyyy");
DateTime timeNow = DateTime.ParseExact(s, "dd-MM-yyyy", null);
if (m_timeFromFile == procedureMethod.getfirstdayoflastmonth(timeNow))
{
try
{
SendMail.sendDailyMail(listXML);
}
catch{}
}
这是getfirstdayoflastmonth()方法:
public static DateTime getfirstdayoflastmonth(DateTime time)
{
return new DateTime(time.AddMonths(-1).Year, time.AddMonths(-1).Month, 1);
}
更新1:
我解决了我的问题。
在if()
语句中,我添加.Day
和.Month
进行比较。
有用。感谢所有帮助过我的人。
if (m_timeFromFile.Day == procedureMethod.getfirstdayoflastmonth(timeNow).Day && m_timeFromFile.Month == procedureMethod.getfirstdayoflastmonth(timeNow).Month)
{
try
{
SendMail.sendDailyMail(listXML);
}
catch{}
}
我已将AddMonths(-1)
修改为AddMonths(0)
。
public static DateTime getfirstdayoflastmonth(DateTime time)
{
return new DateTime(time.AddMonths(-1).Year, time.AddMonths(0).Month, 1);
}
答案 0 :(得分:0)
要获得该月的第一天,您可以使用DateTime
class
方法和属性单独。
DateTime dt = DateTime.Now; //change this to any date you want
DateTime firstDayOfMonth = dt.AddDays(1-dt.Day); //the trick is here, minus the DatetTime by the current day (of month) + 1, you necessarily get the first day of the month
DayOfWeek dow = firstDayOfMonth.DayOfWeek; //this is the first day of the month (this month's first day is Tuesday)
如果您需要每月的第一天,请使用firstDayOfMonth
。如果您需要当天的星期几,请使用dow
。如果您想将firstDayOfMonth
与其他DateTime
进行比较但只对比较日期感兴趣,请执行以下操作:
firstDayOfMonth.Date == someOtherDays.Date
如果您还需要使用时间,可以查看TimeOfDay
。
基本上,尝试了解有关DateTime
类方法和属性的更多信息。这个课程真的很方便用于你的任务!
修改:要比较日期和月份(但不是年份),请使用DateTime.Day
和DateTime.Month
属性
答案 1 :(得分:0)
DateTime dateTime = DateTime.Now;
DateTime firstDayOfMonth = new DateTime(dateTime.Year,dateTime.Month,1);
if (firstDayOfMonth.DayOfWeek.Equals(dateTime.DayOfWeek))
MessageBox.Show("The day is matching with first day of the month" + dateTime.DayOfWeek);
这样的事情可以帮助你。