PDA

View Full Version : اضافه و یا کم نمودن تعداد معینی ماه در تاریخ شمسی



mazmazm
سه شنبه 16 آبان 1385, 11:43 صبح
چگونه می توان در تاریخ شمسی چند ماه را اضافه یا کم نمود. در برنامه اکسین سافت و یا برنامه آقای آزادی برای تاریخ شمسی توابعی وجود دارد که می توان تعداد معینی روز را اضافه یا کم نمود. ولی من می خواهم تعداد معینی ماه را اضافه یا کم کنم. به عنوان مثال به تاریخ 1/5/85 اگر بخواهیم 3 ماه اضافه کنیم تاریخ مورد نظر 1/8/85 می شود. توجه شود به دلیل این که بعضی ماهها 30 روزه 31 روزه و یا 29 روزه هستند اضافه کردن مثلا 90 روز در مثال بالا جواب صحیح را نمی دهد.
لطفا راهنمایی کنید چنانچه تابعی وجود دارد که این کار را انجام می دهد، در اختیار بنده قرار دهید.

samaneh_h
سه شنبه 16 آبان 1385, 15:19 عصر
ببین اول تاریخ رو بصورت میلادی وارد این تابع کن بعد خروجیش رو به شمسی تبدیل کن

(" DateAdd("m", tedad mah, "tarikh
مثل
("DateAdd("m", 1, "31-Jan-95

mazmazm
چهارشنبه 17 آبان 1385, 07:55 صبح
دوست عزیز
این کار را قبلا انجام داده ام ولی به دلیل اینکه روزهای ماههای میلادی و شمسی با هم یکی نیستند یعنی در ماههایی که در شمسی 31 روزه هست در میلادی 30 روزه، نتیجه درستی نمی گیریم و در برخی ماهها یک یا دو روز اختلاف بوجود می آید. باید تابعی وجود داشته باشد که همان کاری که در تاریخ میلادی انجام می شود برای شمسی نیز انجام شود.

samaneh_h
چهارشنبه 17 آبان 1385, 08:18 صبح
من دارم تویه یه سیستم مالی از این راه استفاده می‌کنم مشکلی ندیدم(تو مشخص کردن تاریخ اقساط)

mazmazm
چهارشنبه 17 آبان 1385, 10:45 صبح
با تشکر از توجه شما
اشکال را با یک مثال بیان می کنم:
شما اگر بخواهید به تاریخ 20/3/85 شش ماه اضافه کنید تبعا پاسخ 20/9/85 خواهد شد. ولی با تبدیل تاریخ 20/3/85 به میلادی یعنی 10ژوئن 2006 و اضافه کردن شش ماه به این تاریخ، تاریخ میلادی برابر 10دسامبر 2006 خواهد شد که این تاریخ 19/9/85 می باشد. همانطور که ملاحظه می کنید یک روز اختلاف با تاریخ صحیح ایجاد می گردد. ولی طبق فرمایش شما این قضیه در مورد بعضی روزها دقیقا پاسخ صحیح را می دهد.

Mahsa Hatefi
چهارشنبه 17 آبان 1385, 10:59 صبح
دوست گرام
من این مشکل را با Mid حل کردم امتحان کنید

mazmazm
چهارشنبه 17 آبان 1385, 12:57 عصر
دوست گرام
من این مشکل را با Mid حل کردم امتحان کنید

لطفا درباره Mid توضیح بیشتری بدهید. چطور می توانم این کار را بکنم؟

samaneh_h
چهارشنبه 17 آبان 1385, 13:27 عصر
دستور mid یک مقدار مشخصی از یک string را بر می‌گرداندمثلا" (mid("samaneh";5
saman رو بر می‌گردونه.. فکر کنم دوستمون میاد از تاریخ، قسمت ماه رو جدا می‌کنه بعد به ماه اضافه وکم می‌کنه دوباره تاریخ رو می‌سازه
--------------------
ولی ورودی مید باید استرینگ یا کاراکتر ست باشه

mazmazm
چهارشنبه 17 آبان 1385, 17:11 عصر
وقتی این اضافه یا کم کردن باعث بشود سال هم تغییر کنه اون وقت چطور می شه از این استفاده کرد؟

samaneh_h
پنج شنبه 18 آبان 1385, 09:25 صبح
نه نمی‌شه..اضافه یا کم شدن ماه ها باعث نمی‌شه که سال به طور اتوماتیک عوض شه.عرض کردم خدمتتون..مید با استرینگ یا کاراکتر ست کار می‌کنه..برای تغییر سال شما باید کد بنویسید.همچنین انقدر هوشمند نیست که ماه 30 روزه رو از 31 روز تشخیص بده اونم احتیاج به کد نویسی داره.
من پیشنهاد می‌کنم فارسی ساز تاریخ رو عوض کنید.من یک ماژول دارم که با اون کار می‌کنم و از روش پیشنهادی خودم در بالا برای تاریخ استفاده می‌کنم..ماژول برات اپ می‌کنم

mazmazm
شنبه 20 آبان 1385, 08:18 صبح
از دوستان خواهش می کنم در صورت امکان چنانچه کد مربوط به تابعی را دارند که بتوان به تعداد معینی ماه را به یک تاریخ شمسی اضافه یا کم نمود، در اینجا قرار دهند.

Mahsa Hatefi
شنبه 20 آبان 1385, 09:12 صبح
من یه بار توی یه برنامه اقساط چنین کاری انجام دادم الان حضور ذهن ندارم ولی توی خونه یه نگاهی می اندازم پیدا می کنم براتون آپلود می کنم انشاالله

hghprogramer@yahoo.com
پنج شنبه 15 مرداد 1388, 18:17 عصر
text1.value=date+x به جاي x عددي را وارد کنيد تا به همان تعداد روز به تاريخ اضافه شود

مشتاق یادگیری
جمعه 16 مرداد 1388, 01:46 صبح
سلام
از چه تابعي استفاده مي كنيد اگر از توابع آقاي آزادي استفاده مي كنيد كه اين امكان را دارد و روزهاي 30 روزه و 31 روزه را تشخيص مي دهد و اگر از تابع ديگر استفاده مي كنيد نام آن چيست؟