انجمنهای فارسی اوبونتو
جامعه کاربران => پروژهها => نویسنده: سید وحید رضا برهانی در 04 آبان 1395، 09:49 قظ
-
من خیلی وقت بود که با نبود تاریخ شمسی مشکل داشتم. اما kde بود! که اون هم متاسفانه توی نسخه جدیدش دیگه از تقویم شمسی پشتیبانی نمی کنه!(kde3 بهتر از kde4 بود و kde4 بهتر از kde5 هست ... و kde همچنان داره سقوط آزاد می کنه!)
قبلا هم تلاشهایی کرده بودم توی http://forum.ubuntu.ir/index.php?topic=111052.0
ولی ایندفعه تابع تبدیل تاریخ اش رو با bash پیاده کردم. الگوریتم اش رو هم از پروژه jdf (تاریخ جلالی برای PHP) گرقتم.
از این اسکریپت می شه برای تبدیل تاریخ میلادی به شمسی هم استفاده کرد.
با اینکه چیز ساده ای هست ولی به نظرم خیلی ها بهش نیاز داشته باشند.
برای آدمهای تنبلی مثل خودم لینکش رو اینجا می زارم.
https://gitlab.com/undergroundman/jalalidate/blob/master/jdate.sh
-
با jdate موجود در بستهٔ jcal چه تفاوتهایی داره؟
-
هیچی! همه ی چیزهایی که توی اسکریپت من بود توی jcal هم هست.
فقط نکته ای که هست اینکه من jcal رو الان دیدم :) (من هیچ وقت حرفه ای نمی شم)
البته تنها فرقش اینکه اسکریپت من با بش هست و نیاز به کامپایل یا نصب چیزی نداره.
-
برنامه خیلی زیبا و دوست داشتنی و خیلی خوشمان امد؛ مدتها بود دنبال همچین چیزی بودم: واقعا دستت درد نکنه
-
خوشحالم بدردت می خوره.
پروژه jcal هم چیز جالبیه (البته بش نیست)
-
سلام.
این برنامهی خیلی خوبی است ولی زمانی که در قسمت روز یا ماه عدد ۰۸ یا ۰۹ وارد شود به مشکل بر میخورد.
التبه مشکل خیلی جدی نیست اما اگر بخواهیم در یک برنامهی دیگر ازشان استفاده کنیم میتواند اذیت کننده باشد.
میشود این مشکل را درست کرد؟
bash ./Downloads/jdate.sh -d 2013-02-02
Shabe 14 Bahman 1391
~$ bash ./Downloads/jdate.sh -d 2013-08-02
./Downloads/jdate.sh: line 51: 08: value too great for base (error token is "08")
none none 5
~$ bash ./Downloads/jdate.sh -d 2013-8-02
Jomee 11 Mordad 1392
~$ bash ./Downloads/jdate.sh -d 2013-09-02
./Downloads/jdate.sh: line 51: 09: value too great for base (error token is "09")
none none 1
~$ bash ./Downloads/jdate.sh -d 2013-9-02
DoShanbe 11 Shahrivar 1392
~$ bash ./Downloads/jdate.sh -d 2013-11-08
./Downloads/jdate.sh: line 51: 08: value too great for base (error token is "08")
none none 5
~$ bash ./Downloads/jdate.sh -d 2013-11-8
Jomee 17 Aban 1392
~$ bash ./Downloads/jdate.sh -d 2013-11-06
ChaharShanbe 15 Aban 1392
اگر نه کسی میتواند بگوید که چگونه میتواند از آن jdate (که درکادرهای بالا نوشتید) در Bash استفاده کرد؟
-
سلام
ببین مشکل اسکریپت بالا این هست که در بش اعداد وقتی با صفر شروع می شن یعنی عدد اکتال اند (مبنای ۸) در نتیجه از ۰۰ تا ۰۷ معنی دازند و وقتی ۰۸ یا ۰۹ بهش می دیم چون از مبنا بزرگتر می شن بی معنی می شن و خطا می ده
برای رفع این مشکل باید صفر اول رو حذف کرد تا به عنوان عدد مبنای ۱۰ درنظر گرفته بشه.
رفع مشکل :
می تونی خط ۴۶ و ۴۷ رو به خط زیر تغییر بدی :
month=${2#0}
day=${3#0}
فایل روی اون مخزن گیت هم آپدیت کردم و می تونی از همون هم استفاده کنی
-
متشکرم وحید.
\\:D/