波斯日历与公历转换算法_第1页
波斯日历与公历转换算法_第2页
波斯日历与公历转换算法_第3页
波斯日历与公历转换算法_第4页
波斯日历与公历转换算法_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#if DISPLAY_FARSI_CALENDARtypedef struct MS_U8 weekday;MS_U8 day;MS_U8 month;MS_U16 year; Date_time;static MS_BOOL MApp_IsPersianYearLeap(MS_U32 year)return (year - (year 0) ? 474 : 473) % 2820) + 474) + 38) * 682) % 2816) = 1 & u8Month day;M = des-month;Y = des-year;MS_U8 R;/R = D;/ Jamie shieldedM

2、S_U16 inty;MS_U16 x12 = 0;/ x12 年if (Y 2059) des-year = 2059;if (M 12) :des-month = 12;if (D MApp_GetDaysOfThisMonth(des-year, des-month) des-day = MApp_GetDaysOfThisMonth(des-year, des-month);R = des-day;if (M = 1 | M = 2)x12 = 622;else if (M = 3 & R 年BOOL m_ok;do i+;if (inty = xxx) m_ok = TRUE;bre

3、ak;elsem_ok = FALSE;xxx = xxx + 4;/ while (i 30);/ 30 次if (m_ok = TRUE) if (R 31 & M = 1)R+;else if (R 28 & M = 2)R+;else if (R 31 & M = 3)R+;else if (R 30 & M = 4) R+;else if (R 31 & M = 5) R+;else if (R 30 & M = 6) R+;else if (R 31 & M = 7) R+;else if (R 31 & M = 8) R+;else if (R 30 & M = 9)R+;els

4、e if (R 31 & M = 10) R+;else if (R 30 & M = 11)R+;else if (R 31 & M = 12)R+; else R = 1;M+;/ end if cabiseif (M = 1 & R =21 ) r = R - 20;m = 11;else if (M = 2 & R = 20) r = R - 19;m = 12;else if (M = 3 & R = 21) r = R - 20;m = 1;else if (M = 4 & R = 21) r = R - 20;m = 2;else if (M = 5 & R = 22) r =

5、R - 21;m = 3;else if (M = 6 & R = 22) r = R - 21;m = 4;else if (M = 7 & R = 23) r = R - 22;m = 5;else if (M = 8 & R = 23) r = R - 22;m = 6;else if (M = 9 & R = 23) r = R - 22;m = 7;else if (M = 10 & R = 23) r = R - 22;m = 8;else if (M = 11 & R = 22) r = R - 21;m = 9;else if (M = 12 & R = 22) r = R -

6、 21;m = 10;int x = 0;if (M = 1 | M = 2)x = 622;else if (M = 3 & R day = r;/ return Daydes-month = m;/ return monthdes-year = Y;/ return Yearreturn TRUE;=static int OutDateGregorian_k(Date_time *des)/ what 0 Day 1Month 2 YearMS_U8 D, M;MS_U16 Y;/*D = des-day;M = des-month;Y = des-year;MS_U8 m = 0, r

7、= 0;MS_U8 R = 0;R = D;if (M = 1 & R = 13) m = 4;r = R - 12;if (M = 2 & R = 12) m = 5;r = R - 11;if (M = 3 & R = 12) m = 6;r = R - 11;if (M = 4 & R = 11) m = 7;r = R - 10;if (M = 5 & R = 11) m = 8;r = R - 10;if (M = 6 & R = 11) m = 9;r = R - 10;if (M = 7 & R = 10) m = 10;r = R - 9;if (M = 8 & R = 11)

8、 m = 12;r = R - 10;if (M = 9 & R = 11) m = 12;r = R - 10;/Y = Y + 621;if (M = 10 & R = 12) m = 1;r = R - 11;Y+;if (M = 11 & R = 13) m = 2;r = R - 12;Y+;if (M = 12 & R = 11) m = 3;r = R - 10;Y+;des-day = r;/ return Daydes-month = m;/ return monthdes-year = Y;/ return Yearreturn TRUE;int OutDateGregor

9、ian(Date_time *des) / what = 0Day 1Month 2Year MS_U8 D, M;MS_U16 Y;/*D = des-day;M = des-month;Y = des-year;MS_U8 m = 0, r = 0;MS_U8 R = 0;/*/printf(M = %d D = %d Y = %dn, M, D, Y);if (Y 2059) des-year = 2059;/ return Yearreturn FALSE;if (M 12) des-month = 12;/ return monthif (D MApp_GetIranDaysOfMo

10、nth() des-day = 31;/ return Day*/ int inty = Y;int xxx = 1379, i = 0;BOOL m_ok;do i+;if (inty = xxx) m_ok=TRUE; break;else m_ok = FALSE;xxx = xxx + 4;/忧?呷碛 ?逖嶅茄忧 ?磉惹 ? while (i 30); if (m_ok = TRUE) return OutDateGregorian_k(des); R = D;if (M = 1 & R = 12) m = 4;r = R - 11;if (M = 2 & R = 11) m = 5;

11、r = R - 10;if (M = 3 & R = 11) m = 6;r = R - 10;if (M = 4 & R = 10) m = 7;r = R - 9;if (M = 5 & R = 10) m = 8;r = R - 9;if (M = 6 & R = 10) m = 9;r = R - 9;if (M = 7 & R = 9) m = 10;r = R - 8;if (M = 8 & R = 10) m = 12;r = R - 9;if (M = 9 & R = 10) m = 12;r = R - 9;/Y = Y + 621;if (M = 10 & R = 11)m = 1;r = R - 10;Y+;if (M = 11 &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论