Generating an ordinal number for the day of the month
The problem of formatting an ordinal number is a general one that applies to more than just 31 days of a month.  You also have repetition of much of the string @"Today is the %lu?? day of the month".  Therefore, I suggest defining a separate function for handling this problem.  Taking inspiration from NSNumberFormatter and 'th' 'st' 'nd' 'rd' (ordinal) number endings, I would write:

NSString* const ordinalNumberSuffix(NSUInteger num) {
    if ((num / 10) % 10 == 1) {
        return @"th";       // Special cases 11th, 12th, 13th
    } 
    switch (num % 10) {
        case 1:  return @"st";
        case 2:  return @"nd";
        case 3:  return @"rd";
        default: return @"th";
    }
}


Then you can call

NSLog(@"Today is the %lu%@ day of the month", day, ordinalNumberSuffix(day));