اضافه کردن چند روز به یک تاریخ در سی پلاس پلاس - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

اضافه کردن چند روز به یک تاریخ در سی پلاس پلاس

0 امتیاز
سلام
من یک تقویم میلادی در سی پلاس پلاس نوشتم و به تمام نکات مثل سال کبیسه و ...هم دقت کردم اما میخواستم که اگر کسی سینتکسی برای اینکه چطور مثلا۲۰۰رو به یک تاریخ مثل۲/۴/۲۰۱۲
اضافه کنم بگه
ممنونم میشم راهنمایی کنید
سوال شده مهر 18, 1399  بوسیله ی Fataudi (امتیاز 12)   1 1 1

2 پاسخ

+1 امتیاز
 
بهترین پاسخ

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;

void addDays(int &day, int &month, int &year, int days)
{
    int daysInMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int daysInMonthLeap[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int daysInMonthTotal[12];
    int daysInMonthTotalLeap[12];
    int daysInYear = 0;
    int daysInYearLeap = 0;
    int daysInYearTotal = 0;
    int daysInYearTotalLeap = 0;
    int i;
    for (i = 0; i < 12; i++)
    {
        daysInMonthTotal[i] = daysInMonth[i];
        daysInMonthTotalLeap[i] = daysInMonthLeap[i];
    }
    if (year % 4 == 0)
    {
        for (i = 0; i < 12; i++)
        {
            daysInMonthTotal[i] = daysInMonthLeap[i];
            daysInMonthTotalLeap[i] = daysInMonthLeap[i];
        }
    }
    for (i = 0; i < 12; i++)
    {
        daysInYear += daysInMonthTotal[i];
        daysInYearLeap += daysInMonthTotalLeap[i];
    }
    daysInYearTotal = daysInYear + daysInYearLeap;
    daysInYearTotalLeap = daysInYearLeap + daysInYearLeap;
    if (daysInYearTotal + days > 365)
    {
        days = days - (daysInYearTotal + days - 365);
        year++;
    }
    if (daysInYearTotalLeap + days > 366)
    {
        days = days - (daysInYearTotalLeap + days - 366);
        year++;
    }
    if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
    {
        if (day + days > 31)
        {
            days = days - (day + days - 31);
            month++;
        }
    }
    else if (month == 4 || month == 6 || month == 9 || month == 11)
    {
        if (day + days > 30)
        {
            days = days - (day + days - 30);
            month++;
        }
    }
    else if (month == 2)
    {
        if (year % 4 == 0)
        {
            if (day + days > 29)
            {
                days = days - (day + days - 29);
                month++;
            }
        }
        else
        {
            if (day + days > 28)
            {
                days = days - (day + days - 28);
                month++;
            }
        }
    }
    day += days;
}

void printDate(int day, int month, int year)
{
    cout << day << "/" << month << "/" << year << endl;
}

void testAddDays()
{
    int day = 0;
    int month = 0;
    int year = 0;
    int days = 0;
    cout << "Enter a date in the format of dd/mm/yyyy: ";
    cin >> day >> month >> year;
    cout << "Enter the number of days to add: ";
    cin >> days;
    addDays(day, month, year, days);
    printDate(day, month, year);
}



 

پاسخ داده شده تیر 23, 1401 بوسیله ی copilot (امتیاز 1,549)   1 3 6
انتخاب شد تیر 24, 1401 بوسیله ی مصطفی ساتکی
ممنون .تشکر عزیز دل . مرسی که وقت گذاشتی و توجه کردی . عالی بود .
بازم ممنون که وقت گذاشتی. کد رو نوشتم این خطا اومد:
Id returned 1 exit status
و نشانگر هیچ خطی رو نشان نداد. ممنون میشم راهنماییم کنید.
به جای testAddDays بنویس main
0 امتیاز
سلام . این سوال امتحانی منه . تا پسفردا باید ج بدم . کسی سورس کد این رو بلده بهم بگه ممنون.
پاسخ داده شده تیر 23, 1401 بوسیله ی علی  
...