PDA

View Full Version : سوال: چگونه (به /از) - یک تاریخ معیار- تعداد ماه مشخص را کسر یا اضافه کنیم؟



narpco
پنج شنبه 30 بهمن 1399, 16:52 عصر
سلام حضور دوستان.
یک فایل داریم و یک ماژول شمسی که من از ماژول آفیس باز استفاده می کنم و این ماژول دارای فانکشن های مختلفی است که همه دوستان با اونها اشنایی دارن مثل اضافه کردن تعداد روز خاص به یک تاریخ –تفاوت دو تاریخ و غیره

من به یک موردی برخوردم که میخوام تعداد --ماه ---مشخص را از یک تاریخ معیار –کسریا اضافه کنم
و تاریخ جدید را بعد از- کسر و اضافه -بدست بیارم ....
با توجه به اینکه تعداد روزهای سال بسته به کبیسه بودن یا نبودن متغیر است.

تو ماژول شمسی داخل فایل فانکشنی با این عنوان نداره .....
میخواستم ببینم دوستان چه راه حلی رو برای حل این سئوال پیشنهاد میدهند ....
--توضیح اینکه پایه این ماژول بر حسب کاراکتر های عددی است نه text

narpco
جمعه 01 اسفند 1399, 19:53 عصر
Dim FirstDate As Date ' Declare variables.
Dim IntervalType As String
Dim Number As Integer
Dim Msg
IntervalType = "m" ' "m" specifies months as interval.
FirstDate = InputBox("Enter a date")
Number = InputBox("Enter number of months to add")
Msg = "New date: " & _
DateAdd(IntervalType, Number, FirstDate)
MsgBox Msg

padide55
شنبه 02 اسفند 1399, 11:11 صبح
سلام
مشکل الان حل شد؟
داشتم به این مسیله فکر میکردم که
ماههای 29 روزه و 30 روزه و 31 روزه رو چی در نظر بگیره
مثلا
31 شهریور بعلاوه یک ماه میشه 30 مهر یا 1 ابان ؟

narpco
شنبه 02 اسفند 1399, 13:53 عصر
مشکل که حل نشده

سلام اگر بخواد بصورت اصولی درست بشه که ماژول باید فانکشن جدیدی بهش اضافه بشه با تقویم شمسی مثلا اسمش باشه addmonth

منتها من دستوری رو پیدا کردم ---DateAdd----که تاریخ میلادی رو میگیره و تعداد ماه مشخص رو بهش اضافه میکنه یا کم میکنه -و یک سری آرگومان هم داره که باید بهش بگیم

فعلا من دارم همینو استفاده میکنم --فعلا مشکلی ندیدم تا 36 ماه بعد از یک تاریخ مشخصی رو چک کردم مشکلی نبود به هر حال تو تقویم میلادی هم ماه ها 30 و 31 داره

نکته در مورد این دستور اینه که شما تاریخ شمسی هم بدین بهش اون فک میکنه میلادی هست و ما هها رو اضافه می کنه

قطعا یک جایی بالاخره مشکل خودش رو نشون میده منتها فعلا من همینو دارم استفاده میکنم به ادامه برنامه نویسی ادامه میدم تا مشکل رو اساسی حل کنیم



این مطلب رو به همین پست اضافه میکنم که ...

استفاده از این دستور برای تاریخ شمسی در بعضی تاریخ ها ی شمسی اصلا شدنی نیست مثل 31-6-99 -----در تقویم میلادی ماه 6 -30 روزه هست و با خطا روبرو میشید