Classe date avec quelques fonctions

Contenu du snippet

C'est une simple classe date polyvalente de projets en projets, avec quelques petites fonctions bien pratiques.

Source / Exemple :


//***** ***** ***** ***** *****//
//***** Fait par Eric *** *****//
//*** ericmas001@hotmail.com **//
//***** ***** ***** ***** *****//
using System;

namespace RCS
{
	/// <summary>
	/// Classe qui gère les dates
	/// </summary>
	public class Date
	{
		// Variables
		private int m_Jour;
		private int m_Mois;
		private int m_An;

		// Propriétés
		public int Jour
		{
			get{ return m_Jour; }
			set{ m_Jour = value; }
		}
		public int Mois
		{
			get{ return m_Mois; }
			set{ m_Mois = value; }
		}
		public int An
		{
			get{ return m_An; }
			set{ m_An = value; }
		}

		// Constructeur Date
		public Date(int jj, int mm, int aaaa)
		{
			Jour = jj;
			Mois = mm;
			An = aaaa;
		}

		// Retourne le nombre de jour que contient un mois d'une année précise
		public static int nbJours( int mois, int an )
		{
			// Si c'est février, c'est exceptionel
			if( mois == 2 )
				return ( estBissextile( an ) ? 29 : 28 );
			else
				return ( 30 + ( mois + ( ( mois/8 ) + 1 ) % 2 ) );
		}

		// Retourne si une année est bissextile ou pas
		public static bool estBissextile(int an)
		{
			bool itIs = false;
        
			// Si l'années est divisible par 4, sa en est probablement une
			if( an % 4 == 0 )
				itIs = true;
        
			// Si par contre elle est divisible par 100, elle ne le sera pas ...
			if( an % 100 == 0 )
				itIs = false;
        
			// ... sauf si elle est divisible par 400
			if( an % 400 == 0)
				itIs = true;
        
			return itIs;
		}

		// Retourne si la date existe ... est valide
		public static bool validerDate( int jour, int mois, int an )
		{
			bool isGood = true;

			if( mois < 0 || mois > 12 )
				isGood = false;

			if( jour < 0 || jour > Date.nbJours(mois,an) )
				isGood = false;
        
			return isGood;
		}

		// Retourne la date en format courant au québec (string)
		// jj/mm/aaaa
		public string FormatQc()
		{
			return Jour+"/"+Mois+"/"+An;
		}

		// Retourne la date en format pratique de base de données (string)
		// aaaa-mm-jj
		public string FormatBd()
		{
			return An+"-"+Mois+"-"+Jour;
		}

		// Retourne une date depuis une chaine de format Qc
		public static Date getFromQc( string s )
		{
			string[] d = s.Split('/');
			return new Date(int.Parse(d[0]),int.Parse(d[1]),int.Parse(d[2]));
		}

		// Retourne une date depuis une chaine de format pratique de base de données
		public static Date getFromBd( string s )
		{
			string[] d = s.Split('-');
			return new Date(int.Parse(d[2]),int.Parse(d[1]),int.Parse(d[0]));
		}

	}
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.