如何转换日期并将其与每月的第一天进行比较
本文关键字:第一天 比较 何转换 转换 日期 | 更新日期: 2023-09-27 18:28:08
编辑:(对不起,英语不是我的主要语言,我真诚地向所有读到这个问题的人道歉。)
我编辑了我的问题来解释我的问题。很抱歉。
我想比较两天。当我向其中添加数据并将当天保存在一个文件time_was_send.txt
中时。
然后它应该与当月的第一天进行比较。如果为true,它将执行方法SendMail.sendDailyMail
。
我的getfirstdayofstmonth()方法有问题,它总是减去1个月,而我希望它取当月的第一天。
我只是想比较一下它们是否是同一天和同一个月——年份并不重要。
所以我想比较一下这样的东西。26/12
-在currentDay = 1/12
时从文件time_was_send.txt
与getfirstdayoflastmonth(currentDay)
读取。
为了帮助你理解,这是我的代码,
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{}
}
下面是getfirstdayofstmonth()方法:
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);
}
要获得每月的第一天,可以单独使用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
属性
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);
这样的东西会对你有所帮助。