PDA

View Full Version : اصلاح تاریخ شمسی



teymoorei
سه شنبه 10 آبان 1401, 20:37 عصر
سلام دوستان

من از تابع زیر برای گرفتن تاریخ استفاده میکنم :

Public Function Shamsi_Date() As String Dim DT As Date = Date.Now
Dim Glob As New Globalization.PersianCalendar
Shamsi_Date = Glob.GetYear(DT) & "/" & Glob.GetMonth(DT) & "/" & Glob.GetDayOfMonth(DT)
End Function

حالا دو تا سوال دارم

1 - میخوام نحوه ی نمایش تاریخ به شکل (1401/01/12) باشه نه به این شکل (1401/1/12) یعنی اگه روز یا ما یک رقمی بود 0 بذاره .

2- میخوام دو روز مانده به تاریخ مورد نظر پیام بده

باتشکر

teymoorei
چهارشنبه 11 آبان 1401, 11:26 صبح
مشکل به شکل زیر حل شد :

Return $"{Glob.GetYear(DT):0000}/{Glob.GetMonth(DT):00}/{Glob.GetDayOfMonth(DT):00}"

teymoorei
چهارشنبه 11 آبان 1401, 20:08 عصر
دوستان چطور میشه دو روز مانده به تاریخ مورد نظر پیام بده

ab_ba
پنج شنبه 12 آبان 1401, 11:10 صبح
سلام
باید دو روز از تاریخ روز کم کنی بعد اگر مساوی با اون تاریخ شد، کاری رو که میخوای انجام بدی

teymoorei
پنج شنبه 12 آبان 1401, 13:44 عصر
سلام
باید دو روز از تاریخ روز کم کنی بعد اگر مساوی با اون تاریخ شد، کاری رو که میخوای انجام بدی

دوست عزیز چطور این کار باید انجام بشه ؟

ROSTAM2
پنج شنبه 12 آبان 1401, 20:07 عصر
سلام.
به این تاپیک (https://barnamenevis.org/showthread.php?571845-%DA%A9%D9%84%D8%A7%D8%B3%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE) مراجعه کنید و از کلاس PersianDate استفاده کنید به کمک تابع AddDays از این کلاس می تونید با عدد 2- دو روز از روزهای تاریخ رو کم کنید.


Dim Shamsidate As New PersianDate
Shamsidate = "1401/07/12"
Console.WriteLine("My Custom Date 1401/07/12 Add Days -2: {0}", Shamsidate.AddDays(-2))

ROSTAM2
جمعه 13 آبان 1401, 08:31 صبح
دوستان چطور میشه دو روز مانده به تاریخ مورد نظر پیام بده

در اصل شما باید 2 روز از روزهای تاریخ کم کنید(اگر از PersianDate استفاده می کنید (https://barnamenevis.org/showthread.php?571845-%DA%A9%D9%84%D8%A7%D8%B3%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE&p=2454013&viewfull=1#post2454013)):

Dim Shamsidate As PersianDate
Shamsidate = "1401/08/04".ToPersianDate.AddDays(-2)


و از دستور شرطی استفاده کنید:

Dim Shamsidate As PersianDate
Shamsidate = "1401/08/15"
If Now >= Shamsidate.AddDays(-2) AndAlso Not Now > Shamsidate Then
Console.WriteLine("Date Expired: 2 Days Before... {0} - {1}", Shamsidate, PersianDate.Now)
End If