

In this simple example, we'll explain how to format the label displaying month and year, and also set weekday names.

To format month and year label, we need to create a callback function to create a string given the selected time, declared under a {\ttfamily  struct tm }.

{\ttfamily  struct tm }, declared on {\ttfamily time.\-h}, is a structure composed by nine integers\-: \begin{DoxyItemize}
\item tm\-\_\-sec seconds \mbox{[}0,59\mbox{]} \item tm\-\_\-min minutes \mbox{[}0,59\mbox{]} \item tm\-\_\-hour hour \mbox{[}0,23\mbox{]} \item tm\-\_\-mday day of month \mbox{[}1,31\mbox{]} \item tm\-\_\-mon month of year \mbox{[}0,11\mbox{]} \item tm\-\_\-year years since 1900 \item tm\-\_\-wday day of week \mbox{[}0,6\mbox{]} (Sunday = 0) \item tm\-\_\-yday day of year \mbox{[}0,365\mbox{]} \item tm\-\_\-isdst daylight savings flag \begin{DoxyNote}{Note}
glib version has 2 additional fields.
\end{DoxyNote}
For our function, only stuff that matters are tm\-\_\-mon and tm\-\_\-year. But we don't need to access it directly, since there are nice functions to format date and time, as {\ttfamily strftime}. We will get abbreviated month (b) and year (y) (check strftime manpage for more) in our example\-: 
\begin{DoxyCodeInclude}
\textcolor{keyword}{static} \textcolor{keywordtype}{char} *
\_format\_month\_year(\textcolor{keyword}{struct} tm *format\_time)
\{
   \textcolor{keywordtype}{char} buf[32];
   \textcolor{comment}{/* abbreviates month and year */}
   \textcolor{keywordflow}{if} (!strftime(buf, \textcolor{keyword}{sizeof}(buf), \textcolor{stringliteral}{"%b %y"}, format\_time)) \textcolor{keywordflow}{return} NULL;
   \textcolor{keywordflow}{return} strdup(buf);
\}

\end{DoxyCodeInclude}
\end{DoxyItemize}
We need to alloc the string to be returned, and calendar widget will free it when it's not needed, what is done by {\ttfamily strdup}. So let's register our callback to calendar object\-: 
\begin{DoxyCodeInclude}
   elm_calendar_format_function_set(cal, \_format\_month\_year);

\end{DoxyCodeInclude}


To set weekday names, we should declare them as an array of strings\-:  
\begin{DoxyCodeInclude}
   \textcolor{keyword}{const} \textcolor{keywordtype}{char} *weekdays[] =
     \{
        \textcolor{stringliteral}{"S"}, \textcolor{stringliteral}{"M"}, \textcolor{stringliteral}{"T"}, \textcolor{stringliteral}{"W"}, \textcolor{stringliteral}{"T"}, \textcolor{stringliteral}{"F"}, \textcolor{stringliteral}{"S"}
     \};

\end{DoxyCodeInclude}


And finally set them to calendar\-: 
\begin{DoxyCodeInclude}
   elm_calendar_weekdays_names_set(cal, weekdays);

\end{DoxyCodeInclude}


Our example will look like this\-:

 
\begin{DoxyImage}
\includegraphics{screenshots/calendar_example_02}
\caption{width=}
\end{DoxyImage}


See the full source code \hyperlink{calendar_example_02_8c-example}{calendar\-\_\-example\-\_\-02.\-c} here. 