我想在我的Obj-C应用程序中使用一堆用Javascript编写的函数。我制作了一个头文件并获得了第一个转换,但是第二个被卡住了。这是我开始时所做的以及到目前为止我所做的不起作用......
function calcDayOfWeek(juld)
{
var A = (juld + 1.5) % 7;
var DOW = (A==0)?"Sunday":(A==1)?"Monday":(A==2)?"Tuesday":(A==3)?"Wednesday":(A==4)?"Thursday":(A==5)?"Friday":"Saturday";
return DOW;
}
......和我的尝试:
NSString calcDayOfWeek(float julianDay)
{
float A = (julianDay + 1.5) % 7;
NSString DOW = (A==0)?"Sunday":(A==1)?"Monday":(A==2)?"Tuesday":(A==3)?"Wednesday":(A==4)?"Thursday":(A==5)?"Friday":"Saturday";
return DOW;
}
它应该根据朱利安日数的输入返回一周中包含星期几的字符串。
编辑:根据Yuji的回答,这是有效的......NSString* calculateDayOfWeek(float julianDay) {
int a = fmod(julianDay + 1.5, 7);
NSString* dayOfWeek = (a==0)?@"Sunday":(a==1)?@"Monday":(a==2)?@"Tuesday":(a==3)?@"Wednesday":(a==4)?@"Thursday":(a==5)?@"Friday":@"Saturday";
return dayOfWeek;
}
答案 0 :(得分:5)
您首先需要学习Objective-C的语法和语法。 该功能将是
NSString* calcDayOfWeek(float julianDay)
{
int A = ((int)(julianDay + 1.5)) % 7;
NSString* DOW = (A==0)?@"Sunday":(A==1)?@"Monday":(A==2)?@"Tuesday":(A==3)?@"Wednesday":(A==4)?@"Thursday":(A==5)?@"Friday":@"Saturday";
return DOW;
}
NSString*
而不是NSString
。@"..."
是Objective-C字符串,它是一个对象。 "..."
是一个C字符串,只是char*
。==
用于float
。如果两个浮点数相差.00000001会发生什么?那么,%
运算符会自动给你整数,但我仍然不喜欢它。 但是,你不应该重新发明轮子。 Cocoa有一个API可以为您执行日历转换。见Date and Time Programming Topics.
答案 1 :(得分:1)
您需要通过在@
前加上字符NSString *calcDayOfWeek(float julianDay)
{
float A = (julianDay + 1.5) % 7;
NSString *DOW = (A==0)?@"Sunday":(A==1)?@"Monday":(A==2)?@"Tuesday":(A==3)?@"Wednesday":(A==4)?@"Thursday":(A==5)?@"Friday":@"Saturday";
return DOW;
}
来构建字符串as NSStrings并对其进行引用:
{{1}}
答案 2 :(得分:1)
您需要更改声明函数的方式。试试这个:
-(NSString *) dayOfWeek:(float)julianDay {
float A = (julianDay + 1.5) % 7;
NSString *DOW = (A==0)?@"Sunday":(A==1)?@"Monday":(A==2)?@"Tuesday":(A==3)?@"Wednesday":(A==4)?@"Thursday":(A==5)?@"Friday":@"Saturday";
return DOW;
}