نمایش نتایج 1 تا 5 از 5

نام تاپیک: درست کردن تقویم شمسی با میکرو

  1. #1

    درست کردن تقویم شمسی با میکرو

    الگوریتم تقویم شمسی را برای میکرو میخواستم .

  2. #2
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    نقل قول: درست کردن تقویم شمسی با میکرو

    سلام
    با چه زبانی ؟

  3. #3

    نقل قول: درست کردن تقویم شمسی با میکرو

    اگه ممکنه با بیسیک باشه . تقویم روز شمار و با در نظر گرفتن سالهای کبیسه. ممنون

  4. #4
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    نقل قول: درست کردن تقویم شمسی با میکرو

    سلام
    با یک سرچ ساده نمونه بیسیک آن رامیتونید پیدا کنید . لینک زیر:
    http://projects.m32.ir/up/2012/03/RTC_DS1307.rar

    این هم یک نمونه برای کد ویژن


    // Declare your global variables here

    typedef struct {
    int year;
    unsigned char month;
    unsigned char day;

    } structDate;

    structDate shamsi(structDate M_date);
    structDate addDay(int days,structDate M_date);
    //************************************************** ************************
    void main(void)
    {
    structDate shamsiDate, M_date;
    char str[11];
    lcd_init(20);

    M_date.year =2013;
    M_date.month =1;
    M_date.day=1;

    while (1)
    {
    lcd_clear();

    M_date = addDay(1,M_date);
    lcd_putsf("Miladi: ");
    sprintf(str,"%d/%02d/%02d",M_date.year, M_date.month, M_date.day);
    lcd_puts(str);
    shamsiDate=shamsi(M_date);
    sprintf(str,"%d/%02d/%02d",shamsiDate.year, shamsiDate.month, shamsiDate.day);
    lcd_gotoxy(0,1);
    lcd_putsf("Shamsi: ");
    lcd_puts(str);

    delay_ms(250);
    }
    }
    //************************************************** ***************************
    unsigned char miladiLeapYear(int yearMiladi)
    {
    if ((!(yearMiladi % 4) && (yearMiladi % 100)) || !(yearMiladi % 400) )
    return 1;
    else
    return 0;
    }
    //***********************************************
    structDate shamsi(structDate M_date)
    {
    unsigned char miladiMonthDays[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int totalMiladiDays, totalShamsiDays, tmpYear;
    unsigned char Counter2, Counter1, tmpLeap;
    structDate tmpShamsi;

    if (!miladiLeapYear(M_date.year))
    miladiMonthDays[1] = 28;
    else
    miladiMonthDays[1] = 29;

    Counter2 = M_date.month - 1;
    totalMiladiDays = 0 ;

    for (Counter1 = 0; Counter1<Counter2;Counter1++)
    totalMiladiDays += miladiMonthDays[Counter1];

    totalMiladiDays += M_date.day;

    if (totalMiladiDays > 79)
    {
    tmpShamsi.year = M_date.year - 621;
    totalShamsiDays = totalMiladiDays - 79;
    }
    else
    {
    tmpShamsi.year = M_date.year - 622;
    tmpYear = M_date.year - 1 ;
    tmpLeap = miladiLeapYear(tmpYear);

    if (tmpLeap == 0)
    totalShamsiDays = totalMiladiDays + 286;
    else
    totalShamsiDays = totalMiladiDays + 287;
    }

    tmpShamsi.month = 1 ;

    while (totalShamsiDays > 30)
    {
    if (tmpShamsi.month < 7)
    totalShamsiDays -= 31;
    else
    totalShamsiDays -= 30;

    tmpShamsi.month ++;
    }

    if (!totalShamsiDays)
    {
    tmpShamsi.month --;
    if (tmpShamsi.month < 7)
    tmpShamsi.day = 31;
    else
    tmpShamsi.day = 30;
    }
    else
    tmpShamsi.day = totalShamsiDays;

    return tmpShamsi;
    }
    //***********************************************
    structDate addDay(int days,structDate M_date)
    {
    volatile structDate tmpDate;
    int year;
    char str[11];
    unsigned char month,day;
    unsigned char miladiMonthDays[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    if (!miladiLeapYear(M_date.year))
    miladiMonthDays[1] = 28;
    else
    miladiMonthDays[1] = 29;

    day = M_date.day;
    days += day;
    month = M_date.month;
    year = M_date.year;
    while (days > miladiMonthDays[month-1])
    {
    days -= miladiMonthDays[month-1];
    month ++;
    if (month>12)
    {
    month=1;
    year ++;
    }

    }
    tmpDate.day = (unsigned char)days;
    tmpDate.month = month;
    tmpDate.year = year;

    return tmpDate;
    }
    آخرین ویرایش به وسیله Abbas Amiri : شنبه 07 بهمن 1391 در 17:36 عصر

  5. #5

    نقل قول: درست کردن تقویم شمسی با میکرو

    منون . اگه ممکنه بگین چطوری محاسبه میکنیم و میفهمیم که مثلا تاریخ 1392/4/10 چند شنبه میشه ؟
    1. با در نظر گرفتن سالهای کبیسه
    2. تبدیل میلادی به شمسی نمیخوام فقط در مورد شمسی بفرماید که چطوری محاسبه میشه

تاپیک های مشابه

  1. فارسی کردن صفحه کلید و تقویم شمسی با فایل DLL
    نوشته شده توسط mohsenna30ri در بخش Access
    پاسخ: 18
    آخرین پست: دوشنبه 09 اسفند 1400, 13:02 عصر
  2. تقویم شمسی با امکان تعریف کردن روز های تعطیل
    نوشته شده توسط nicolas1390 در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 9
    آخرین پست: چهارشنبه 14 آذر 1397, 14:25 عصر
  3. سوال: درخواست شمسی کردن تقویم و تاریخ های اسکریپت php
    نوشته شده توسط saeidrp در بخش PHP
    پاسخ: 7
    آخرین پست: دوشنبه 09 مرداد 1391, 18:29 عصر
  4. نحوه ی bind کردن combobox به تقویم شمسی
    نوشته شده توسط habibsa در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 25 شهریور 1389, 11:38 صبح
  5. پاسخ: 2
    آخرین پست: شنبه 25 مرداد 1382, 00:03 صبح

قوانین ایجاد تاپیک در تالار

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