2 * Definitions for date strings for use with the Time library
\r
4 * No memory is consumed in the sketch if your code does not call any of the string methods
\r
5 * You can change the text of the strings, make sure the short strings are each exactly 3 characters
\r
6 * the long strings can be any length up to the constant dt_MAX_STRING_LEN defined in Time.h
\r
10 #include <avr/pgmspace.h>
\r
13 // the short strings for each day or month must be exactly dt_SHORT_STR_LEN
\r
14 #define dt_SHORT_STR_LEN 3 // the length of short strings
\r
16 static char buffer[dt_MAX_STRING_LEN+1]; // must be big enough for longest string and the terminating null
\r
18 char monthStr1[] PROGMEM = "January";
\r
19 char monthStr2[] PROGMEM = "February";
\r
20 char monthStr3[] PROGMEM = "March";
\r
21 char monthStr4[] PROGMEM = "April";
\r
22 char monthStr5[] PROGMEM = "May";
\r
23 char monthStr6[] PROGMEM = "June";
\r
24 char monthStr7[] PROGMEM = "July";
\r
25 char monthStr8[] PROGMEM = "August";
\r
26 char monthStr9[] PROGMEM = "September";
\r
27 char monthStr10[] PROGMEM = "October";
\r
28 char monthStr11[] PROGMEM = "November";
\r
29 char monthStr12[] PROGMEM = "December";
\r
31 PGM_P monthNames_P[] PROGMEM =
\r
33 "",monthStr1,monthStr2,monthStr3,monthStr4,monthStr5,monthStr6,
\r
34 monthStr7,monthStr8,monthStr9,monthStr10,monthStr11,monthStr12
\r
37 char monthShortNames_P[] PROGMEM = "ErrJanFebMarAprMayJunJulAugSepOctNovDec";
\r
39 char dayStr0[] PROGMEM = "Err";
\r
40 char dayStr1[] PROGMEM = "Sunday";
\r
41 char dayStr2[] PROGMEM = "Monday";
\r
42 char dayStr3[] PROGMEM = "Tuesday";
\r
43 char dayStr4[] PROGMEM = "Wednesday";
\r
44 char dayStr5[] PROGMEM = "Thursday";
\r
45 char dayStr6[] PROGMEM = "Friday";
\r
46 char dayStr7[] PROGMEM = "Saturday";
\r
48 PGM_P dayNames_P[] PROGMEM = { dayStr0,dayStr1,dayStr2,dayStr3,dayStr4,dayStr5,dayStr6,dayStr7};
\r
49 char dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThrFriSat";
\r
51 /* functions to return date strings */
\r
53 char* monthStr(uint8_t month)
\r
55 strcpy_P(buffer, (PGM_P)pgm_read_word(&(monthNames_P[month])));
\r
59 char* monthShortStr(uint8_t month)
\r
61 for (int i=0; i < dt_SHORT_STR_LEN; i++)
\r
62 buffer[i] = pgm_read_byte(&(monthShortNames_P[i+ (month*dt_SHORT_STR_LEN)]));
\r
63 buffer[dt_SHORT_STR_LEN] = 0;
\r
67 char* dayStr(uint8_t day)
\r
69 strcpy_P(buffer, (PGM_P)pgm_read_word(&(dayNames_P[day])));
\r
73 char* dayShortStr(uint8_t day)
\r
75 uint8_t index = day*dt_SHORT_STR_LEN;
\r
76 for (int i=0; i < dt_SHORT_STR_LEN; i++)
\r
77 buffer[i] = pgm_read_byte(&(dayShortNames_P[index + i]));
\r
78 buffer[dt_SHORT_STR_LEN] = 0;
\r