تاریخ فردا
-
wrote on 28 Jun 2012, 23:12 last edited by
همین برای کیوت نیست؟
-
wrote on 29 Jun 2012, 08:35 last edited by
ببین تاریخی که شما می گین شمسی هستش و این نیاز به استفاده از توابع تبدیل تاریخ های میلادی و شمسی به یکدیگر داره که خودش بحث جداییه اول باید شمسی رو به میلادی تبدیل کنی و بعد از طریق اون راهی که بالا گفتم می تونی یک روز قبل یا یک روز بعدش رو به میلادی بدست بیاری و دوباره شمسی کنی. نام روزهای هفته شمسی و میلادی هم که فرقی ندارن.
به این خط دقت کن:
one_day = datetime.timedelta(days=1)
tomorrow = today + one_day
ارگومان دی ز در خط اول اگر یک عدد مثبت باشه مثلا 10 ، ده روز به تاریخ مورد نظر که در اینجا تاریخ امروز هست رو حساب می کنه. اگر عدد منفی باشه تاریخ روز های قبل رو بر می گردونه برای مثال اگر منفی یک بذاریم و اون رو با تاریخ امروز جمع کنیم تاریخ دیروز رو بمون می ده.شما در این الگوریتم اگر از توابع تبدیل تاریخ میلادی به شمسی و شمسی به میلادی استفاده می کنی به آگاهی از کبیسه بودن یا نبودن سال نیازی نداری. فقط کافیه مثلا 21 بهمن رو به تاریخ میلادیش تبدیل کنی و تعداد روزهای قبل و بعدش رو می خای حساب کنی و دوباره به شمسی برگردونی.
-
wrote on 29 Jun 2012, 08:44 last edited by
اره این کار با کیوتی هم قابل انجامه. الان یه نیگاهی به ماژول زیر انداختم دیدم متد هایی همه رو داره:
QtCore.QDateبعد از امتحانم که وقت آزاد داشتم حتما این برنامه رو که گفتین هم با توابع کیوتی و هم با توابع استاندارد زبان پیاده می کنم
-
wrote on 29 Jun 2012, 09:31 last edited by
برای پیدا کردن اولین روز هفته یک تاریخ شمسی هم کافیه اون تاریخ شمسی رو به میلادی تبدیل کنی و شماره هفته سالی که تاریخ میلادی در اون قرار داره رو بدست بیاریم. مثلا امروز
today = QDate.currentDate()
print today
PyQt4.QtCore.QDate(2012, 6, 29)
print today.weekNumber()
(26, 2012)امروز بیست و ششمین هفته سال میلادی می باشد. اولین روز هفته میلادی دوشنبس پس شنبه می شه ششمین روز هفته میلادی و جمعه می شه پنجمین روز
حالا بوسیله توابع درون کتابخانه ی استاندارد زبان می شه با همین آگاهی از چندمین هفته سال و شماره روزهای تاریخ شنیه و جمعه اون هفته رو به میلادی بدست اورد و به شمسی بر گردوند
حالا یه مثال می زنم تا روشن شه. خب امروز 29 ام جون دو هزار و دوازدس
اول میام با کیوتی شماره ی هفته رو در سال بصورت زیر بدست میارم:today = QDate.currentDate()
print today
PyQt4.QtCore.QDate(2012, 6, 29)
print today.weekNumber()
(26, 2012)خب اینجا فهمیدم که در بیست و ششمین هفته سال قرار داریم. حالا روز شنبه رو که در میلادی ششمین روز هفته هست رو محاسبه می کنم:
time.asctime(time.strptime('2012 26 6', '%Y %W %w'))
'Sat Jun 30 2012'
و بعد اون رو که به شمسی بر گردونم می شه
10/4/1391 شنبهبرای جمعه هم می شه همین کار رو کرد ولی جمعه روز پنجم هفته میلادیه
من این راه حل به ذهنم رسید حالا بازم باید تحقیق کنی ببینی این مشکلی داره یا نه. و اگرم راه حل بهتری دیدی مارو هم لطفا خبر کن :) سپاس
-
wrote on 29 Jun 2012, 20:43 last edited by
ممنون از راهنماییت
-
wrote on 29 Jun 2012, 20:46 last edited by
بالاخره یافتم
چه قدر درگیر همین چیز ساده بودم:دی
http://fa.wikipedia.org/wiki/روز_ژولیوسی
یه چیزی هست به اسم روز ژولیوسی
کیو دیت دو تابع داره که روز ژولیوسی رو به تاریخ معمولی و تاریخ معمولی رو به روز ژولیوسی تبدیل می کنه -
wrote on 29 Jun 2012, 20:55 last edited by
کاش یه کلاس جامع مثل کیودیت برای تقویم شمسی وجود داشت
من برای پروژه ای که دارم انجام میدم کلی به دردسر افتادم
یه چیز خیلی ساده برای تبدیل میلادی به شمسی و برعکس نوشتم
https://gitorious.org/qdateconvertor
الگوریتم ها رو هم کنارش گذاشتم. در کل چیز کاملی نیستنظرتون راجب اینکه یه کلاس مث کیو دیت بنویسیم چیه؟
-
wrote on 29 Jun 2012, 22:20 last edited by
[quote author="vahid" date="1341003339"]کاش یه کلاس جامع مثل کیودیت برای تقویم شمسی وجود داشت
من برای پروژه ای که دارم انجام میدم کلی به دردسر افتادم
یه چیز خیلی ساده برای تبدیل میلادی به شمسی و برعکس نوشتم
https://gitorious.org/qdateconvertor
الگوریتم ها رو هم کنارش گذاشتم. در کل چیز کاملی نیستنظرتون راجب اینکه یه کلاس مث کیو دیت بنویسیم چیه؟
-
wrote on 29 Jun 2012, 22:24 last edited by
[quote author="vahid" date="1340871519"]چطوری میشه تاریخ مثلا سه روز دیگه رو گرفت؟
یه تابع می خوام که تاریخ یه روزو بگیره هفت تا تاریخ روز های هفته ای که اون روز توشه رو برگردونه
واسه این مثلا می شه با یه تابع فهمید اون روز چندشنبست بعد مثلا اگه یکشنبه بود (یعنی روز دوم)تاریخ یک روز قبل و پنج روز بعد رو بده[/quote]@QString QDate::shortDayName ( int weekday, MonthNameType type )@
Returns the short name of the weekday for the representation specified by type.
The days are enumerated using the following convention:
1 = "Mon"
2 = "Tue"
3 = "Wed"
4 = "Thu"
5 = "Fri"
6 = "Sat"
7 = "Sun"
The day names will be localized according to the system's locale settings.@QDate QDate::addDays ( int ndays ) const@
Returns a QDate object containing a date ndays later than the date of this object (or earlier if ndays is negative).
-
wrote on 1 Jul 2012, 22:43 last edited by
مرسی
15/15