ISO 8601 parser/unparser / testunparsewithtime.m

#import <Foundation/Foundation.h>
#import "ISO8601DateFormatter.h"

static void testFormatStrings(int hour, int minute);

int main(void) {
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
	ISO8601DateFormatter *formatter = [[[ISO8601DateFormatter alloc] init] autorelease];
	formatter.includeTime = YES;
	NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:336614400.0];
	NSLog(@"2011-09-01 at 5 PM ET: %@", [formatter stringFromDate:date]);

	testFormatStrings(11, 6);
	testFormatStrings(2, 6);
	testFormatStrings(-2, 6);

	[pool drain];
	return EXIT_SUCCESS;
}

static void testFormatStrings(int hour, int minute) {
	NSArray *formatStrings = [NSArray arrayWithObjects:
		@"%@: %02d:%02d",
		@"%@: %+02d:%02d",
		@"%@: %0+2d:%02d",
		@"%@: %02+d:%02d",
		@"%@: %+.2d:%02d",
		nil];
	NSLog(@"Testing with NSLog:");
	for (NSString *format in formatStrings) {
		NSLog(format, format, hour, minute);
	}
	printf("Testing with printf:\n");
	for (NSString *format in formatStrings) {
		format = [format stringByReplacingOccurrencesOfString:@"%@" withString:@"%s"];
		printf([[format stringByAppendingString:@"\n"] UTF8String], [format UTF8String], hour, minute);
	}
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.