نمایش تاریخ بر حسب تعداد روزهای گذشته
نویسنده: محمد محمدی
تاریخ: ۱۳۹۳/۱۱/۲۳ ۱۵:۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
public string GetHour(DateTime lastdate)
{
PersianCalendar pc = new PersianCalendar();
string result = " ساعت " + (((pc.GetHour(lastdate)) < 10) ? ("0" + pc.GetHour(lastdate).ToString()) : (pc.GetHour(lastdate)).ToString()) + ":" + (((pc.GetMinute(lastdate)) < 10) ? ("0" + pc.GetMinute(lastdate).ToString()) : (pc.GetMinute(lastdate)).ToString());
return result;
} public string getDay(DayOfWeek day)
{
string Result = "";
switch (day)
{
case DayOfWeek.Friday:
Result = "جمعه";
break;
case DayOfWeek.Monday:
Result = "دوشنبه";
break;
case DayOfWeek.Saturday:
Result = "شنبه";
break;
case DayOfWeek.Sunday:
Result = "یکشنبه";
break;
case DayOfWeek.Thursday:
Result = "پنج شنبه";
break;
case DayOfWeek.Tuesday:
Result = "سه شنبه";
break;
case DayOfWeek.Wednesday:
Result = "چهارشنبه";
break;
default:
break;
}
return Result;
} getDay(pc.GetDayOfWeek(LastDate))
public string GetMounth(int month)
{
string[] monthInYear = {"فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند" };
return monthInYear[month-1];
} private void btnGetDate_Click(object sender, EventArgs e)
{
DateTime LastDate = DateTime.Parse(txtLastDate.Text);
TimeSpan ts = DateTime.Now - LastDate;
PersianCalendar pc = new PersianCalendar();
int DifferenceYear = DateTime.Now.Year - LastDate.Year;
int DiffernceMounth = DateTime.Now.Month - LastDate.Month;
if(DateTime.Now.Month>LastDate.Month)
DiffernceMounth = DateTime.Now.Month - LastDate.Month;
else
DiffernceMounth=LastDate.Month-DateTime.Now.Month;
int DifferenceDays = ts.Days;
StringBuilder Result = new System.Text.StringBuilder("");
if(DifferenceYear>0)
{
Result.Append(DifferenceYear.ToString() + " سال پیش"+" ، "+getDay(pc.GetDayOfWeek(LastDate))+" "+pc.GetDayOfMonth(LastDate).ToString()+" " + GetMounth(pc.GetMonth(LastDate))+" " +pc.GetYear(LastDate)+GetHour(LastDate));
}
else if(DiffernceMounth>0)
{
Result.Append(DiffernceMounth.ToString() + " ماه پیش" + " ، " + getDay(pc.GetDayOfWeek(LastDate)) + " " + pc.GetDayOfMonth(LastDate).ToString() + " " + GetMounth(pc.GetMonth(LastDate)) + " " + pc.GetYear(LastDate) + GetHour(LastDate));
}
else if(DifferenceDays>0)
Result.Append(DifferenceDays.ToString() + " روز پیش" + " ، " + getDay(pc.GetDayOfWeek(LastDate)) + " " + pc.GetDayOfMonth(LastDate).ToString() + " " + GetMounth(pc.GetMonth(LastDate)) + " " + pc.GetYear(LastDate) + GetHour(LastDate));
else if(DifferenceDays==0)
Result.Append(" امروز" + " ، " + getDay(pc.GetDayOfWeek(LastDate)) + " " + pc.GetDayOfMonth(LastDate).ToString() + " " + GetMounth(pc.GetMonth(LastDate)) + " " + pc.GetYear(LastDate) + GetHour(LastDate));
lblResult.Text = Result.ToString();
} if(DateTime.Now.Month>LastDate.Month)
DiffernceMounth = DateTime.Now.Month - LastDate.Month;
else
DiffernceMounth=LastDate.Month-DateTime.Now.Month; double DifferenceMinute = ts.TotalMinutes;
else if (DateTime.Now.Date == LastDate.Date && (DifferenceMinute<60 && (DateTime.Now.Hour-LastDate.Hour<=1)) )
Result.Append("در " + ConvertMinuteToString((int)DifferenceMinute) + " دقیقه قبل " + " ، " + GetHour(LastDate)); public string ConvertMinuteToString(int minute)
{
string Result = "";
string[] minLessTen = { "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه", "ده" };
string[] minLesstwenty = { "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده" };
Dictionary<int,string> minmore=new Dictionary<int,string>
{
{2,"بیست"},
{3,"سی"},
{4,"چهل"},
{5,"پنجاه"}
};
if (minute <= 10)
Result = minLessTen[minute - 1];
else if (minute < 20)
Result = minLesstwenty[(minute%10)-1];
else if ((minute / 10) >= 2)
{
Result = minmore[minute / 10];
if (minute % 10 > 0)
Result += " و " + minLessTen[(minute % 10) - 1];
}
return Result;
} public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public DateTime dt { get; set; }
}
static void Main(string[] args)
{
List<Post> ListOfPost = new List<Post>();
DateTime dt = DateTime.Now;
PersianCalendar pc = new PersianCalendar();
int day = pc.GetDayOfMonth(dt);
int month = pc.GetMonth(dt);
int year = pc.GetYear(dt);
int DaysInMonth = pc.GetDaysInMonth(year, month);
DateTime FirstDayOfCurrentMonth = dt.AddDays(-day).Date;
DateTime LastDayOfCurrentMonth =
FirstDayOfCurrentMonth.AddDays(DaysInMonth);
var query = ListOfPost
.Where(x => x.dt.Date > FirstDayOfCurrentMonth.Date)
.Where(x => x.dt.Date <= LastDayOfCurrentMonth.Date)
.ToList();
}