gpt4 book ai didi

c - 如何将此 C 日历代码转换为 Objective-C 语法并使其与矩阵一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:20 26 4
gpt4 key购买 nike

#define TRUE    1
#define FALSE 0

int days_in_month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
char *months[]=
{
" ",
"\n\n\nJanuary",
"\n\n\nFebruary",
"\n\n\nMarch",
"\n\n\nApril",
"\n\n\nMay",
"\n\n\nJune",
"\n\n\nJuly",
"\n\n\nAugust",
"\n\n\nSeptember",
"\n\n\nOctober",
"\n\n\nNovember",
"\n\n\nDecember"
};


int inputyear(void)
{
int year;

printf("Please enter a year (example: 1999) : ");
scanf("%d", &year);
return year;
}

int determinedaycode(int year)
{
int daycode;
int d1, d2, d3;

d1 = (year - 1.)/ 4.0;
d2 = (year - 1.)/ 100.;
d3 = (year - 1.)/ 400.;
daycode = (year + d1 - d2 + d3) %7;
return daycode;
}


int determineleapyear(int year)
{
if(year% 4 == FALSE && year%100 != FALSE || year%400 == FALSE)
{
days_in_month[2] = 29;
return TRUE;
}
else
{
days_in_month[2] = 28;
return FALSE;
}
}

void calendar(int year, int daycode)
{
int month, day;
for ( month = 1; month <= 12; month++ )
{
printf("%s", months[month]);
printf("\n\nSun Mon Tue Wed Thu Fri Sat\n" );

// Correct the position for the first date
for ( day = 1; day <= 1 + daycode * 5; day++ )
{
printf(" ");
}

// Print all the dates for one month
for ( day = 1; day <= days_in_month[month]; day++ )
{
printf("%2d", day );

// Is day before Sat? Else start next line Sun.
if ( ( day + daycode ) % 7 > 0 )
printf(" " );
else
printf("\n " );
}
// Set position for next month
daycode = ( daycode + days_in_month[month] ) % 7;
}
}


int main(void)
{
int year, daycode, leapyear;

year = inputyear();
daycode = determinedaycode(year);
determineleapyear(year);
calendar(year, daycode);
printf("\n");
}

此代码生成终端中输入年份的日历。我的问题是如何将其转换为 Objective-C 语法而不是 C 语法。我确信这是一个简单的过程,但我对 objective - c 还是个新手,我需要它来进行 cocoa 项目。此代码将日历输出为一系列连续的字符串,直到最后一个月命中。 soo 而不是在终端中创建日历我如何输入日历一系列 NSMatrixes 取决于输入的年份。

希望有人能帮我解决这个问题,谢谢或每一个帮助(你在完成程序的学分中):)(日历只是我制作的程序的一小部分,它是重要的部分之一!!)

最佳答案

我建议查看标准的 NSCalendar 类,它提供了这个以及更多的功能。

例如,要计算给定日期的一个月(或一周)中的天数,您可以使用以下方法:

- (NSRange)rangeOfUnit:(NSCalendarUnit)smaller inUnit:(NSCalendarUnit)larger forDate:(NSDate *)date

一些也可能有用的类:NSDateComponentsNSDateFormatter

另请注意,c 代码在 objective-c 中是完全有效的,因此您的程序应该能够正常运行(除非您可能需要更改其输入)

关于c - 如何将此 C 日历代码转换为 Objective-C 语法并使其与矩阵一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2874839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com