Classe date avec quelques fonctions

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 574 fois - Téléchargée 26 fois

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

Ajouter un commentaire

Commentaires

Nikoui
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
7 -
Heu, as tu entendu parlé de la classe DateTime, fournie avec le framework ?
ricklekebekoi
Messages postés
305
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
4 -
Oui enfin pas pour ces utilités. DateTime était pour moi un répertoire de petites fonctions statics en lien avec la date actuelle.

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.