Traducir el blog

The Perpetual Calendar spills on the Surface

Anyone who has followed the previous posts will know that it is time that waves go out to the surface since, earlier this month, I planned this Perpetual Calendar project according to the 5 elements to improve the User Experience - UX, we've seen on this blog:
  1. Strategy to follow here
  2. Scope intended here
  3. Structure used here
  4. Skeleton suggested here
  5. Surface recursive here
As mentioned, the result that the user sees is on the visual surface design of the application that interact to achieve the results you want, and we are looking for a Perpetual Calendar in Excel spreadsheets and here is its presentation in society:



Viewing this video you will see that a part of what has been achieved in this calendar has been done without the use of Excel macros knowing that can reach a wider audience, but if that was used all the power of Conditional Formatting - CF of Excel 2010 to make it more useful and striking, I hope I have achieved...

Something very important, that a software programmer should always keep in mind, is the internacionalization (i18n) and localization (L10n) of any software application, which is to say flatly that must be prepared to change easely the user's Native Language Support - NLS. To do this, all calendar cells contains date format, applying the appropriate mask turn into days of the week as Monday or Sunday, or months, like January or December, with the advantage of opening the calendar template in one language, the names of the days of the week or the names of the months of the year appear in that language, either in English, Spanish or Croatian. You only need to change the names of the worksheets and the titles, notes and tags to the user language to have the calendar in his language.

It is easy to test by changing the operating system locale in Windows click Start, Control Panel, click Regional and Language and Regional Options, selecting Croatian language. Now, when you open the Perpetual Calendar, the dates will be in that language. What you don't believe that? Look for yourself:


And the same with the sheets of each month, the mini-calendar and the events, holidays and diary dates. By the way, the Easter Week calculation and another celebration's dates have been included for some countries.

If you like it, you can download this Perpetual Calendar in Excel 2007 from here:

or from this template link: Perpetual Calendar in Excel 2010

I've only shown the tip of the iceberg but, to spill the entire project to the surface, you should analyze by yourself the Excel formats and functions used to make this calendar. I hope it reaches many years or may become a perpetual one...

I know there are many things to improve but why do not you comment about it here?

How to change the fill and text color of the events and diary entries?

I explain in the next video how to change events' colors (dark green) only for Cal sheet:



Now is easy for you to change diary colors (dark blue) in all other sheets (12 months and Mini).

Traducción al español aquí.

El Calendario Perpetuo sale a la Superficie

Quien haya seguido las entradas anteriores sabrá que les toca a las ondas salir a la superficie desde que a primeros de mes planifiqué el proyecto de Calendario Perpetuo según los 5 elementos de mejora de la experiencia del usuario, en inglés User Experience - UX, que hemos visto en este blog:

  1. Estrategia a seguir aquí
  2. Alcance pretendido aquí
  3. Estructura empleada aquí
  4. Esquema sugerido aquí
  5. Superficie recursiva aquí
Como ya se dijo, el resultado que ve el usuario está en la superficie del diseño visual de la aplicación con la que interactua para obtener los resultados que busca y, lo que buscamos es un Calendario Perpetuo en hojas de cálculo Excel y aquí tienes su presentación en sociedad:



Viendo el vídeo verás parte de lo que se ha conseguido en este calendario que se ha hecho sin emplear macros de Excel para que pueda llegar a más público, pero si que se ha usado toda la potencia del Formato Condicional (CF en inglés) de Excel 2007 y 2010 para darle más utilidad y vistosidad, espero haberlo conseguido...

Algo muy importante, que siempre hay que tener en cuenta, es la internacionalización (i18n) y localización (L10n) de cualquier aplicación informática, lo que quiere decir simple y llanamente que ha de estar preparada para cambiar al idioma del usuario con facilidad, o sea, a su soporte de lenguaje nativo (en inglés: Native Language Support - NLS). Para ello, todas las celdas del calendario contienen formato de fechas que, aplicando la máscara adecuada se convierten en días de la semana, como lunes o domingo, o en meses del año, como enero o diciembre, con la ventaja de que al abrir la plantilla del calendario en un idioma, los nombre de los días de la semana o los nombres de los meses del año aparecen en ese idioma, sea inglés, español o croata. Ya sólo hace falta cambiar los nombres de las hojas de cálculo y los títulos, notas y etiquetas al idioma del usuario para tener el calendario en su idioma.

Es fácil hacer la prueba cambiando la configuración regional del sistema operativo, en Windows pulsa en Inicio, Panel de control, Configuración regional y de idioma y, en Opciones regionales selecciona el Croata. Ahora, al abrir el Calendario Perpetuo, se verán las fechas en ese idioma. ¿Que no te lo crees? Míralo por tí mismo:

Y lo mismo con las hojas de cada mes, con el mini-calendario y con las fechas de los eventos, fiestas y el diario. Por cierto, se ha incluido el cálculo de los días de la Semana Santa y de celebración de varios países.

Si te ha gustado puedes bajarte el Calendario Perpetuo en Excel 2007 desde aquí:

o desde este enlace de plantillas: Calendario Perpetuo en Excel 2010

Solo te he mostrado la punta del iceberg pero, para que salga todo el proyecto a la superficie, deberás analizar por tu cuenta las funciones y formatos de Excel empleados en este calendario, que espero que alcance muchos años o llegue a ser perpetuo...

Yo se que hay muchas cosas que mejorar pero quiero que me las comentes tú.
English translation of this post here.

Skeleton of the Perpetual Calendar

Continuing the expansion of the waves in this blog, the skeleton will determine the place of user interface elements in a computer application and will be designed for optimal, effective and efficient use for the desired objective, that is not to extend this project until becoming skeletons.

The skeleton design should cover three different designs:
- Interface Design and its components that allow users to do things, such as buttons, input fields, etc.
- Navigation Design through the application information and the various worksheets in the calendar.
- Information Design to be complete, easily accessible and user friendly.

This is the outline of design for the Perpetual Calendar project, bearing in mind that the best design is one that is based on these three design aspects. Also you must use the same conceptual model in the entire application to be consistent and have a easy learning curve for users.

Skeleton Design of the Perpetual Calendar

  • Interface Design

1) To enter the year, the annual calendar has a drop-down list from 1900 to 9999, making it easy to change from year to see another calendar.

In a hidden worksheet called Years,
will create a drop-down list of 8100 rows with all years and origin
=Years!$A$1:$A$8100
as seen in this screenshot.

Of course you can type directly into the cell the desired year.


2) In the Holidays worsheet you can select the country with their celebration dates by a drop-down list of countries.


The list can be edited on the same Holidays worksheet, in rows 58-87 of the first column as the origin:
=$A$58:$A$87


3) To move around the 17 calendar sheets have been chosen the following colors: light blue for the annual calendar, dark blue for the day, red for the holidays, green for the events, yellow for the 12 months sheets and blue for the mini-calendar.


To go to a worksheet you click on one of the tabs above, you can edit to change the name of the months without affecting the calculations. The following is an example of what not to do:

2010 Calendar – Excel Template [Downloads] by Chandoo.org

Because the individual months are calculated from the month name written on the tab, making it impossible to change that label to translate, eg "Jan" to "January" or to Spanish "Enero".


4) Any time you can change the calendar so the week starts on Sunday or Monday, and you can even show twice on Sunday (left and right) and hide on Saturdays and/or Sundays to show the working week, from Monday to Friday.


As shown in the image on the left, check it with a mark value to 1 on Saturdays or Sundays as visible.

Checking with a value 0 is marked as invisible.

This is achieved through a custom cell format type:
[=0]"r";[=1]"a"
representing a value of 0 as the letter "r" and a value of 1 as the letter "a", being the Webdings font which display checked and unchecked marks.

Another way to create cells to select or deselect actions can be viewed at:

How to get tick marks in Excel? [custom cell formatting] by Chandoo.org

Editing a conditional formatting rule, which uses a formula to determine the cells to format, you can hide or show on Saturdays and Sundays.

The custom cell format type must be made with 4 semicolons ;;;; (when the formula is true is made invisible, when it is false are visible)

5) In the three worksheets of Holidays, Daily and Events has been used the same technique to select or deselect the dates you want to make visible or invisible.


  • Navigation Design

1) The navigation between worksheets are done with hyperlinks in Excel:

From the sheet with the calendar year may go to other sheets, simply clicking on the hyperlink marked in blue and underlined as usual. For example, to go to the month of January, click on the name of that month.

From spreadsheets of the Holidays, Diary and Events can go back to the yearly calendar by clicking on the year number.

In the 12 sheets of each month, if you click on the name of the month, go to the mini-calendar and, if you click on the year, go to the yearly calendar.

In the mini-calendar, if you click on the year number, go to the yearly calendar, if you click on one of the month name, you are going to this month sheet.

  • Design Information

1) In all calendars shows year, month, weekdays, Saturdays and Sundays, today in yellow, holidays in red, events in green and calendar diary in blue, as you can see on this prototype of a mini-calendar:


In this and other calendars you can hide both Saturdays and Sundays, as explained above.

As planned, in the next issue will surface (such as oil spill) the outcome of the project...
Traducción al español aquí.

Esquema de un Calendario Perpetuo

Continuando con la expansión de las ondas en este blog, el esquema determinará el lugar que ocupan los elementos del interfaz de usuario en una aplicación informática y será diseñado para un uso óptimo, efectivo y eficiente para el objetivo deseado.

El diseño del esquema deberá contemplar tres diseños diferentes:
- Diseño del interfaz y sus componentes que permiten al usuario hacer cosas, como los botones, campos de introducción de datos, etc.
- Diseño de la navegación por la información de la aplicación y por las distintas hojas de cálculo del calendario.
- Diseño de la información para que sea completa, fácilmente asequible y amigable al usuario.

Se trata de diseñar el esquema del proyecto de Calendario Perpetuo, teniendo siempre en cuenta que el mejor diseño es el que está basado en esos tres aspectos del diseño. Además se debe usar el mismo modelo conceptual en toda la aplicación para que sea consistente y tenga una curva de aprendizaje poco pronunciada para los usuarios.

Esquema de diseño del Calendario Perpetuo

  • El Diseño del Interfaz

1) Para introducir el año en el calendario anual se dispone de un lista desplegable desde 1900 hasta 9999, por lo que es fácil cambiar de año para ver otro calendario.

En una hoja de cálculo oculta, denominada Años,
se creará una lista desplegable de 8100 filas con todos los años y con origen
=Años!$A$1:$A$8100
como se ve en esta captura.

Por supuesto que se puede teclear directamente en dicha celda el año deseado.

2) En la hoja de Fiestas se puede seleccionar el país con sus fechas de celebración mediante un desplegable con las listas de los países.


La lista se puede editar en la misma hoja de Fiestas, en las filas 58 a 87 de la primera columna como origen:
=$A$58:$A$87


3) Para moverse por cada una de las 17 hojas del calendario se han elegido los colores que las representan: azul claro para el calendario anual; azul oscuro para el diario; rojo para las fiestas; verde para los eventos; amarillo para las hojas de los 12 meses y azul para el mini-calendario.


Para cambiar de hoja se pulsa sobre una de las pestañas anteriores, que se pueden editar para cambiar el nombre de los meses sin afectar a los cálculos.  El siguiente es un ejemplo de lo que no se debe hacer:

2010 Calendar – Excel Template [Downloads] by Chandoo.org

Porque los meses individuales se calculan a partir del nombre del mes escrito en la pestaña, lo que impide modificar esa etiqueta para traducirla, por ejemplo de "Ene" a "Enero" o en inglés a "Jan".


4) En cualquier momento se puede modificar el calendario para que la semana comience en domingo o en lunes, e incluso se puede mostrar dos veces el domingo (por la izquierda y por la derecha) y ocultar los sábados y/o domingos para mostrar la semana laboral de lunes a viernes.

Como se ve en la imagen de la izquierda, chequeando con un valor a 1 se marcan los sábados o domingos como visibles.

Chequeando con un valor a 0 se marcan como invisibles.

Esto se consigue mediante un formato de celdas personalizado del tipo:
[=0]"r";[=1]"a"
que representa un valor 0 como la letra "r" y un valor 1 como la letra "a", siendo el tipo de fuente Webdings que visualizan las marcas de chequeo y unchequeo.

Otra manera de crear celdas para marcar o desmarcar acciones se puede ver en:

How to get tick marks in Excel? [custom cell formatting] by Chandoo.org

Editando una regla de formato condicional, que utilice una fórmula que determine las celdas para aplicar formato, se puede ocultar o mostrar los sábados y domingos.

El formato de celdas personalizado debe ser del tipo 4 puntos y comas seguidos ;;;; (cuando la fórmula es cierta se hacen invisibles, cuando es falsa se hacen visibles)


5) En las 3 hojas de Fiestas, Agenda y Eventos se emplea la misma técnica para marcar o desmarcar las fechas que se quieran hacer visibles o invisibles.


  • El Diseño de la Navegación

1) La navegación entre las hojas de cálculo se hace con los hipervínculos de Excel:

Desde la hoja con el calendario anual se puede ir al resto de hojas, simplemente pinchando en el hipervínculo marcado en azul y subrayado como es habitual.  Por ejemplo, para ir al mes de enero, se pincha en el nombre de ese mes.

Desde las hojas de cálculo de las Fiestas, Agenda y Eventos se puede volver al calendario anual pinchando en el número del año.

En las 12 hojas de cada uno de los meses, si se pincha en el nombre del mes se va al mini-calendario, si se pincha en el año se va al calendario anual.

En el mini-calendario, si se pincha en el año se va al calendario anual, si se pincha en uno de los meses se va al calendario de ese mes.

  • El Diseño de la Información

1) En todos los calendarios se muestra el año, los meses, los días de la semana, los sábados y domingos, el día de hoy en amarillo, los días de  fiesta en rojo, los eventos en verde y las citas de la agenda en azul, como se puede ver en el prototipo del mini-calendario:


En este y en los demás calendarios se pueden ocultar tanto los sábados como los domingos, como ya se ha explicado anteriormente.

Según estaba planificado, en la próxima entrega saldrá a la superficie (como el chapapote) el resultado del proyecto...
English translation of this post here.

The Perpetual Calendar Structure

To understand us, both users and programmers, we should speak the same language to manipulate of information.

To manipulate the databases we use the Structured Query Language - SQL, although we are not aware of it because the sentences are embedded within the application that interacts with databases but, to define the structure of a program or application, we have not defined a common language with the users.

Our software engineers create the Information Arquitecture by means of modeling techniques, own dictionaries and languages that do not share with users such as:
- Data Flow Diagramas - DFD
- Logical Data Model - LDM by means of high-level conceptual schemes.
- Data Dictionaries - DD as sets of metadata in a Data Base - DB.

To visualize, specify, build and document a software application, programmers we understand the graphic language modeling software systems currently most known and used, the Unified Modeling Language - UML based on 13 different types of diagrams classified into 3 categories:
- Structure Diagrams: classes, components, objects, composite, deployment, packages.
- Behavior Diagrams: activities, use cases, estates.
- Interaction Diagrams: sequence, communication, interaction, timing.

The problem is that UML lacks a precise semantics, so it is not objective and can result in different interpretations for different users. Another factor is the lack of components to define persistence of a remote application or a distributed system. But the worst thing is the freedom to use any of the 13 types of diagrams, while we are not superstitious. Always we are going to use the least appropriate following our common sense...

To facilitate Interactive Design is best to decide by the behavior diagrams such as use case diagrams and state diagrams that leave no doubt about the interaction with users and can show to take joint decisions concerning the structured design plan for a Perpetual Calendar in Excel:


As you can see, in this Use Case Diagram coexist different types of users, from commercial or secretary to controller or practical people, from customers to workers and unemployed people. Everyone wants to know how they will be his coming days, months or years (some nostalgic look past years) and some will try to keep the present in their own diaries.

If you don't mind my asking, what type of user you are and what language you communicate with?
Traducción al español aquí.

La Estructura del Calendario Perpetuo

Para entendernos, tanto los usuarios como los programadores, deberíamos hablar un mismo lenguaje de manipulación de la información.

Para manipular las bases de datos usamos el Lenguaje Estructurado de Consultas - SQL (en inglés, Structured Query Language), aunque no seamos conscientes de ello porque las sentencias están incrustadas dentro de la aplicación que interactua con las bases de datos, pero para definir la estructura de un programa o de una aplicación no hemos definido un lenguaje común con los usuarios.

Los ingenieros de software creamos la Arquitectura de la Información mediante técnicas de modelado, diccionarios y lenguajes propios que no compartimos con los usuarios como son:
- Diagramas de Flujo de Datos - DFD
- Modelo de Datos Lógicos (en inglés, Logical Data Model - LDM) mediante esquemas conceptuales de alto nivel (SAM o HDM)
- Diccionarios de Datos - DD como conjuntos de metadatos en una Base de Datos - BD.

Para visualizar, especificar, construir y documentar una aplicación informática nos entendemos con los programadores en el lenguaje gráfico de modelado de sistemas de software más conocido y utilizado actualmente, el Lenguaje Unificado de Modelado - UML (en inglés, Unified Modeling Language) que se basa en 13 tipos diferentes de diagramas clasificados en 3 categorías:
- Diagramas de Estructura: clases, componentes, objetos, compuesta, despliegue, paquetes.
- Diagramas de Comportamiento: actividades, casos de uso, estados.
- Diagramas de Interacción: secuencia, comunicación, colaboración, tiempos, vistas.

El problema es que UML carece de una semántica precisa, por lo que no es objetivo y puede provocar interpretaciones distintas para distintos usuarios. Otro factor es su falta de definición de componentes persistentes en aplicaciones remotas y sistemas distribuidos. Pero lo peor es la libertad para emplear cualquiera de los 13 tipos de diagramas, aún no siendo supersticiosos. Siempre se empleará el menos apropiado siguiendo el sentido común...

Para facilitar un Diseño Interactivo es mejor decidirse por los Diagramas de Comportamiento, como los diagramas de casos de uso y los diagramas de estados que no dejan lugar a dudas sobre la interacción con los usuarios y se les puede mostrar para tomar decisiones conjuntas referentes al diseño estructurado del proyecto de un Calendario Perpetuo en Excel:


Como se puede ver en este Diagrama de Casos de Uso, coexisten diversos tipos de usuarios, desde el comercial o el secretario a la gente práctica o controladora, desde los clientes de todo tipo a los trabajadores y parados. Todos quieren saber cómo van a ser sus próximos días, meses o años (algunos nostálgicos mirarán los años pasados) y algunos intentarán seguir el presente en sus diarios.

Si no es indiscrección, ¿qué tipo de usuario eres tú y en qué lenguaje te comunicas?
English translation of this post here.

Scope of the Perpetual Calendar Project

In the last article I showed you the skeleton must have a perpetual calendar with minimum performance requirements in order to show the months of any year.

You know "How to make a calendar in Excel" here.

Now it comes to defining the scope of this project (in the image the projector scope by references), defining the features and functions to incorporate into our implementation of a Perpetual Calendar in Excel. The more functional specifications, the more ambitious is the project and most costly in time and cost, despite the redundancy.

If not well defined scope at the beginning of the project we run the risk of occurrence of a scope creep or deviation from the scope due to lousy exchange controls, poor identification of the initial objetives, weak project management, poor communication between developers (the latter is difficult if one is only oneself) or a set of them all.

I like to refer to this syndrome as the kitchen sink syndrome, to warn that if the scope of the project we get out of hand, is like throwing all the resources we use to the drain kitchen sink, or perhaps the program does not seem to follow the recipes of the cooks to get a good menu ...

We will not define here a Work Breakdown Structure - WBS as said before, as there isn't a development team, another day will be, but we're going to define here the scope of this project, summarized in the requirements, the following functional features and specifications:

Perpetual Calendar Project

1. Features common to all calendar sheets
1.1. Encode all dates in internal numeric date format
1.2. Enter the calendar year from a single cell
1.3. Highlight days of the week with appropriate color
1.4. Highlight colors on Saturdays and Sundays
1.5. Allow write notes in the calendar
1.6. Linking with other sheets through the months
1.7. Automatically translate month names
1.8. Automatically translate week days names

2. Features of the perpetual year calendar
2.1. Select a year from 1900 to 9999
2.2. Automatically generate 12 months of the year
2.3. Show the month number
2.4. Show the day of the week number
2.5. Start the week on Sunday or Monday
2.6. Show Sundays at the beginning and/or end of the week
2.7. Hide Saturdays and Sundays independently
2.8. Highlight diary entries in blue
2.9. Highlight holidays in red
2.10. Highlight events in green
2.11. Highlight today in yellow

3. Features of the monthly calendar
3.1. Show the day of the week number
3.2. Start the week on Sunday or Monday
3.3. Show Sundays at the beginning and/or end of the week
3.4. Hide Saturdays and Sundays independently
3.5. Highlight diary entries in blue
3.6. Highlight holidays in red
3.7. Highlight events in green
3.8. Highlight today in yellow
3.9. Show a photo of the before and after month

4. Features of the year mini-calendar
4.1. Hide Saturdays and Sundays independently
4.2. Highlight diary entries in blue
4.3. Highlight holidays in red
4.4. Highlight events in green
4.5. Highlight today in yellow

5. Features of the programmable diary
5.1. Enter 50 diary entries (expandable)
5.2. Enter diary entry name
5.3. Enter date in blue
5.4. Mark the visibility of the individual entry
5.5. Mark the visibility of all entries

6. Features of the programmable holidays
6.1. Enter 50 holiday entries (expandable)
6.2. Mark the visibility of today in yellow
6.3. Mark the visibility of holidays individually
6.4. Mark the visibility of all holidays
6.5. Select holidays from a drop-down country list
6.6. Enter the most important holidays in Spain, USA and India
6.7. Enter country, holiday, celebration and translated date
6.8. Calculate the exact holidays for different years (see Easter Week)

7. Features of the programmable events
7.1. Enter 150 event entries as World Days (expandable)
7.2. Mark the visibility of events individually
7.3. Mark the visibility of all events
7.4. Enter event name and date
7.5. Calculate the exact event date (see Valentine's Day)

8. Create the programmable Perpetual Calendar in 17 Excel spreadsheets
8.1. Create 1 sheet with 12 months of the year
8.2. Create 12 sheets with each of the months
8.3. Create 1 sheet with the mini-calendar
8.4. Create 1 sheet with the programmable diary entries
8.5. Create 1 sheet with the programmable holidays
8.6. Create 1 sheet with the programmable events

In the beginning I was to represent this structure as a Work Breakdown Structure (WBS) with the program Microsoft Visio 2010 Beta which I installed for free but, see where, from what I've seen is only possible to install in previous versions, so the interactive graphical representation and the automation with Microsoft Project 2010 is for later.

A total of 57 functional specifications to be met for this first version of the Perpetual Calendar. Do you seem too? Would you add or take away any of them? What would you prefer? Are you eager to see the results of the project?
Traducción al español aquí.

Alcance del proyecto de Calendario Perpetuo

En el anterior artículo mostré el esqueleto que debe tener un calendario perpetuo con unas prestaciones mínimas para poder mostrar los meses de cualquier año.

Puedes saber "Como hacer un calendario en Excel" aquí.

Ahora se trata de definir el alcance de este proyecto (en la imagen el alcance de un proyectil por referencias), definiendo las características y funciones a incorporar a nuestra aplicación de un Calendario Perpetuo en Excel. Cuantas más especificaciones funcionales haya, más ambicioso será el proyecto y más costoso en tiempo y coste, valga la redundancia.

Si no se define bien el alcance al principio del proyecto corremos el riesgo de que ocurra un Arrastramiento o Desviación del alcance (Scope creep en inglés) debido a pésimos controles de los cambios, mala identificación de los objetivos iniciales, floja gestión del proyecto, mala comunicación entre los desarrolladores (esto último es difícil si solo es uno mismo) o un conjunto de todos ellos.

A mí me gusta referirme a este síndrome como el Síndrome del lavadero, en inglés Kitchen sink syndrome, para avisar que si el alcance del proyecto se nos va de las manos, es como tirar todos los recursos que empleemos por el desagüe del fregadero de la cocina, o acaso la programación no se parece a seguir las recetas de los cocineros para conseguir un buen menú...

Aquí no vamos a definir una Estructura de Descomposición del Trabajo - EDT por lo dicho, ya que no hay un equipo de desarrollo, otro día será, pero si el alcance de este proyecto, que se resume en los requisitos, características y especificaciones funcionales siguientes:

Proyecto de un Calendario Perpetuo

1. Características comunes a todas las hojas del calendario
1.1. Codificar todas las fechas en formato numérico interno de fecha
1.2. Introducir el año del calendario desde una única celda
1.3. Resaltar con colores apropiados los días de la semana
1.4. Resaltar con colores los sábados y los domingos
1.5. Permitir escribir notas en el calendario
1.6. Enlazar unas hojas con otras mediante los meses
1.7. Traducir automáticamente los nombres de los meses
1.8. Traducir automáticamente los días de la semana

2. Características del calendario perpetuo de un año
2.1. Seleccionar con un desplegable el año desde 1900 a 9999
2.2. Generar automáticamente los 12 meses del año
2.3. Mostrar el número del mes
2.4. Mostrar el número de la semana
2.5. Comenzar la semana en domingo o lunes
2.6. Mostrar el domingo al principio y/o al fin de la semana
2.7. Ocultar los sábados y los domingos independientemente
2.8. Resaltar las entradas en el diario en color azul
2.9. Resaltar las fiestas en color rojo
2.10. Resaltar los eventos en color verde
2.11. Resaltar hoy en color amarillo

3. Características del calendario de cada mes
3.1. Mostrar el número de la semana
3.2. Comenzar la semana en domingo o lunes
3.3. Mostrar el domingo al principio y/o al fin de la semana
3.4. Ocultar los sábados y los domingos independientemente
3.5. Resaltar las entradas en el diario en color azul
3.6. Resaltar las fiestas en color rojo
3.7. Resaltar los eventos en color verde
3.8. Resaltar hoy en color amarillo
3.9. Mostrar una foto del mes anterior y posterior

4. Características del mini-calendario de un año
4.1. Ocultar los sábados y los domingos independientemente
4.2. Resaltar las entradas en el diario en color azul
4.3. Resaltar las fiestas en color rojo
4.4. Resaltar los eventos en color verde
4.5. Resaltar hoy en color amarillo

5. Características del diario programable
5.1. Introducir 50 entradas en el diario (ampliable)
5.2. Introducir nombre de la entrada
5.3. Introducir la fecha en color azul
5.4. Programar la visibilidad de la entrada individualmente
5.5. Programar la visibilidad de todas las entradas

6. Características de las fiestas programables
6.1. Introducir 50 entradas para las fiestas (ampliable)
6.2. Programar la visibilidad de hoy con color amarillo
6.3. Programar la visibilidad de las fiestas individualmente
6.4. Programar la visibilidad de todas las fiestas
6.5. Seleccionar con un desplegable las fiestas de un país
6.6. Introducir las fiestas más importantes de España, USA e India
6.7. Introducir país, fiesta, fecha de celebración y fecha traducida
6.8. Calcular los días de fiesta exactos para distintos años (ver Semana Santa)

7. Características de los eventos programables
7.1. Introducir 150 entradas de eventos como Días Mundiales
7.2. Programar la visibilidad de los eventos individualmente
7.3. Programar la visibilidad de todos los eventos
7.4. Introducir el nombre del evento y su fecha
7.5. Calcular la fecha del evento exacta (ver Día de San Valentín)

8. Crear el Calendario Perpetuo programable en 17 hojas de Excel
8.1. Crear 1 hoja con los 12 meses del año
8.2. Crear 12 hojas con cada uno de los meses
8.3. Crear 1 hoja con el mini-calendario
8.4. Crear 1 hoja con las entradas del diario programables
8.5. Crear 1 hoja con las fiestas programables
8.6. Crear 1 hoja con los eventos programables

En un principio iba a representar esta estructura mediante un Work Breakdown Structure (WBS) con el programa Microsoft Visio 2010 Beta que me instalé gratuitamente pero, mira por donde, por lo que he visto sólo es posible instalarla en versiones anteriores, por lo que la representación gráfica interactiva y automatizable con Microsoft Project 2010 queda para más adelante.

En total son 57 especificaciones funcionales que habrá que cumplir para esta primera versión del Calendario Perpetuo. ¿Te parecen muchas? ¿Añadirías o quitarías alguna? ¿Cuáles te parecen más interesantes? ¿Estás impaciente por ver los resultados del proyecto?
English translation of this post here.

Mi lista de blogs