Skip to content

Instantly share code, notes, and snippets.

@loganwright
Created August 20, 2014 14:05
Show Gist options
  • Save loganwright/76f8ae99b6f5833f7fd3 to your computer and use it in GitHub Desktop.
Save loganwright/76f8ae99b6f5833f7fd3 to your computer and use it in GitHub Desktop.
Date Keys
//
// DateKeys.h
// VoxNotes
//
// Created by Logan Wright on 5/6/14.
// Copyright (c) 2014 Logan Wright. All rights reserved.
//
#import <Foundation/Foundation.h>
/*!
Number of seconds as at least 1 digit - 1 through 9 will show as single digit
*/
FOUNDATION_EXPORT NSString * const DKSecondsComplete; // s
/*!
Number of seconds as at least 2 digits - 1 through 9 will show as 01, 02, etc.
*/
FOUNDATION_EXPORT NSString * const DKSeconds2Digits; // ss
/*!
Number of minutes as at least 1 digit - 1 through 9 will show as single digit
*/
FOUNDATION_EXPORT NSString * const DKMinutesComplete; // m
/*!
Number of minutes as at least 2 digits - 1 through 9 will show as 01, 02, etc.
*/
FOUNDATION_EXPORT NSString * const DKMinutes2Digits; // mm
/*!
Number of hours as at least 1 digit - 12hr format 1 through 9 show as single digit
*/
FOUNDATION_EXPORT NSString * const DKHour12hrComplete; // h
/*!
Number of hours as at least 2 digits - 12hr format 1 through 9 show as 01 , 09 etc...
*/
FOUNDATION_EXPORT NSString * const DKHour12hr2Digit; // hh
/*!
Number of hours as at least 1 digit - 24hr format 1 through 9 show as single digit
*/
FOUNDATION_EXPORT NSString * const DKHour24hrComplete; // K
/*!
Number of hours as at least 2 digits - 24hr format 1 through 9 show as 01 , 09 etc...
*/
FOUNDATION_EXPORT NSString * const DKHour24hr2Digits; // HH
/*!
Day of week abbreviated, Wednesday => Wed
*/
FOUNDATION_EXPORT NSString * const DKDayOfWeekAbbreviated; // EEE
/*!
Day of week full, Wednesday => Wednesday
*/
FOUNDATION_EXPORT NSString * const DKDayOfWeekFull; // EEEE
/*!
Day of month as at least 1 digit - 1 through 9 show as single digit
*/
FOUNDATION_EXPORT NSString * const DKDayOfMonthComplete; // d
/*!
Day of month as at least 2 digits - 1 through 9 show as 01 , 09 etc...
*/
FOUNDATION_EXPORT NSString * const DKDayOfMonth2Digits; // dd
/*!
Day of year as at least 1 digit - - 1 through 9 show as single digit
*/
FOUNDATION_EXPORT NSString * const DKDayOfYearComplete; // D
/*!
Day of year as at least 2 digits - 1 through 9 show as 01 , 09 etc...
*/
FOUNDATION_EXPORT NSString * const DKDayOfYear2Digits; // DD
/*!
Day of year as at least 3 digits - 1 through 9 show as 001 , 009 etc...
*/
FOUNDATION_EXPORT NSString * const DKDayOfYear3Digits; // DDD
/*!
Weak of year as at least 1 digit - 1 through 9 show as 1 single digits
*/
FOUNDATION_EXPORT NSString * const DKWeekOfYearComplete; // w
/*!
Weak of year as at least 2 digits - 1 through 9 show as 01, 02, etc.
*/
FOUNDATION_EXPORT NSString * const DKWeekOfYear2Digits; // ww
/*!
Month as Number as at least 1 digit - 1 through 9 show as single digit
*/
FOUNDATION_EXPORT NSString * const DKMonthNumberComplete; // M
/*!
Month as Number as at least 2 digits - 1 through 9 show as 01 , 09 etc...
*/
FOUNDATION_EXPORT NSString * const DKMonthNumber2Digits; // MM
/*!
Month name abbreviated - First 3 letters
*/
FOUNDATION_EXPORT NSString * const DKMonthNameAbbreviated; // MMM
/*!
Month name full
*/
FOUNDATION_EXPORT NSString * const DKMonthNameFull; // MMMM
/*!
Month name first letter only
*/
FOUNDATION_EXPORT NSString * const DKMonthNameFirstLetter; // MMMMM
/*!
Show complete year regardless of year length. Years < 10 will be single digit
*/
FOUNDATION_EXPORT NSString * const DKYearComplete; // y
/*!
Year as last 2 digits w/ minimum 2 digits. Years < 10 will be 09, 08, etc.
*/
FOUNDATION_EXPORT NSString * const DKYear2Digits; // yy
/*!
Year as at least 3 digits years < 100 will be 048, 049 etc. years > 999 will show complete
*/
FOUNDATION_EXPORT NSString * const DKYear3Digits; // yyyy
/*!
Year as at least 4 digits years < 100 will be 048, 049 etc. years > 999 will show complete
*/
FOUNDATION_EXPORT NSString * const DKYear4Digits; // yyyy
/*!
Year as at least 4 digits years < 100 will be 048, 049 etc. years > 999 will show complete
*/
FOUNDATION_EXPORT NSString * const DKYear5Digits; // yyyyy
/*
It appears that you could continue in this pattern ad infinitum for your purposes
*/
/*!
Shows AM or PM
*/
FOUNDATION_EXPORT NSString * const DKAmPm; // a
/*!
Shows TimeZone as +0000, +0500, etc.
*/
FOUNDATION_EXPORT NSString * const DKTimeZoneGMT; // ZZZ
/*!
Shows TimeZone abbreviated - PST, EDT, etc.
*/
FOUNDATION_EXPORT NSString * const DKTimeZoneAbbreviated; // zzz
/*!
Shows TimeZone Complete - Pacific Standard Time, Eastern Daylight Time, etc.
*/
FOUNDATION_EXPORT NSString * const DKTimeZoneFull; // zzzz
/*!
Shows TimeZone as 'usnyc` etc.
*/
FOUNDATION_EXPORT NSString * const DKTimeZoneDescriptiveShort; // V
/*!
Shows TimeZone as 'America/New_York` etc.
*/
FOUNDATION_EXPORT NSString * const DKTimeZoneDescriptiveExpanded; // VV
/*!
Shows TimeZone as 'New York` etc.
*/
FOUNDATION_EXPORT NSString * const DKTimeZoneReadableShort; // VVV
/*!
Shows TimeZone as 'New York Time` etc.
*/
FOUNDATION_EXPORT NSString * const DKTimeZoneReadableLong; // VVVV
/*!
Shows era as AD or CE, etc.
*/
FOUNDATION_EXPORT NSString * const DKEra; // G
#pragma mark FORMATTER FUNCTION
NSString * dateFormatString(NSString * string1, ...) NS_REQUIRES_NIL_TERMINATION;
//
// DateKeys.m
// VoxNotes
//
// Created by Logan Wright on 5/6/14.
// Copyright (c) 2014 Logan Wright. All rights reserved.
//
#import "DateKeys.h"
NSString * const DKSecondsComplete = @"s"; // s
NSString * const DKSeconds2Digits = @"ss"; // ss
NSString * const DKMinutesComplete = @"m"; // m
NSString * const DKMinutes2Digits = @"mm"; // mm
NSString * const DKHour12hrComplete = @"h"; // h
NSString * const DKHour12hr2Digit = @"hh"; // hh
NSString * const DKHour24hrComplete = @"K"; // K
NSString * const DKHour24hr2Digits = @"HH"; // HH
NSString * const DKDayOfWeekAbbreviated = @"EEE"; // EEE
NSString * const DKDayOfWeekFull = @"EEEE"; // EEEE
NSString * const DKDayOfMonthComplete = @"d"; // d
NSString * const DKDayOfMonth2Digits = @"dd"; // dd
NSString * const DKWeekOfYearComplete = @"w"; // w
NSString * const DKWeekOfYear2Digits = @"ww"; // ww
NSString * const DKMonthNumberComplete = @"M"; // M
NSString * const DKMonthNumber2Digits = @"MM"; // MM
NSString * const DKMonthNameAbbreviated = @"MMM"; // MMM
NSString * const DKMonthNameFull = @"MMMM"; // MMMM
NSString * const DKMonthNameFirstLetter = @"MMMMM"; // MMMMM
NSString * const DKDayOfYearComplete = @"D"; // D
NSString * const DKDayOfYear2Digits = @"DD"; // DD
NSString * const DKDayOfYear3Digits = @"DDD"; // DDD
NSString * const DKYearComplete = @"y"; // y
NSString * const DKYear2Digits = @"yy"; // yy
NSString * const DKYear3Digits = @"yyy"; // yyyy
NSString * const DKYear4Digits = @"yyyy"; // yyyy
NSString * const DKYear5Digits = @"yyyyy"; // yyyyy
NSString * const DKAmPm = @"a"; // a
NSString * const DKTimeZoneGMT = @"ZZZ"; // ZZZ
NSString * const DKTimeZoneAbbreviated = @"zzz"; // zzz
NSString * const DKTimeZoneFull = @"zzzz"; // zzzz
NSString * const DKTimeZoneDescriptiveShort = @"V"; // V
NSString * const DKTimeZoneDescriptiveExpanded = @"VV"; // VV
NSString * const DKTimeZoneReadableShort = @"VVV"; // VVV
NSString * const DKTimeZoneReadableLong = @"VVVV"; // VVVV
NSString * const DKEra = @"G"; // G
#pragma mark FUNCTIONS
NSString * dateFormatString(NSString * string1, ...) {
// Parse out Args
va_list args;
va_start(args,string1);
// Set up our Format String
NSMutableString * formatString = [NSMutableString string];
// Build Format string
for (NSString * arg = string1; arg != nil; arg = va_arg(args, NSString*)) {
[formatString appendString:arg];
}
// Clean up variable args
va_end(args);
// Pass it back
return formatString;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment