@interface StampTransformmer
+ (unsigned long) GetStamp :(NSString *) input;
@end
@implementation StampTransformmer
+ (unsigned long) GetStamp :(NSString*) input
{
const char *timestr;
unsigned long ret;
unsigned long lyearCount;
unsigned long year ,month ,day ,hour ,min ,sec;
timestr = [input UTF8String];
sscanf(timestr ,"%u-%u-%u %u:%u:%u" ,&year ,&month ,&day ,&hour ,&min ,&sec);
unsigned long daySum[] = {0 ,31 ,59 ,90 ,120 ,151 ,181 ,212 ,243 ,273 ,304 ,334 };
lyearCount = ((year-1)/4 - (year-1)/100 + (year-1)/400) - (1969/4 - 1969/100 + 1969/400);
ret = (year-1970) * 365 * 24 * 3600 + lyearCount * 24 * 3600;
ret += daySum[month-1] * 24 * 3600;
if(month > 2 && ((year%4==0 && year%100!=0) || year%400==0))
ret += 24 * 3600;
ret += (day-1) * 24 * 3600 + hour * 3600 + min * 60 + sec;
return ret;
}
@end
int main()
{
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
NSLog(@"%u" ,[StampTransformmer GetStamp:@"2013-3-7 17:40:50"]);
[pool release];
return 0;
}