<?php

###############################################################################
#                                                                             #
# fly_four_years.inc.php : Il s'agit d'une classe pour compter le nombre de   #
#                          jours, minutes, et secondes qui nous sépare du     #
#                          départ du Tyran Adolf W. Bush.                     #
#                                                                             #
#   +---------------------------------------------------------------------+   #
#   | Copyright (c) 2003/2004 Flyounet                                    |   #
#   +---------------------------------------------------------------------+   #
#   | This program is free software; you can redistribute it and/or       |   #
#   | modify it under the terms of the GNU General Public License (GPL)   |   #
#   | as published by the Free Software Foundation; either version 2      |   #
#   | of the License, or (at your option) any later version.              |   #
#   | The GPL can be found at http://www.gnu.org/licenses/gpl.html        |   #
#   +---------------------------------------------------------------------+   #
#   | Author:  Flyounet <dev[at]flyou.net>                                |   #
#   | Website: http://dev.flyou.net/Fly_4Years                            |   #
#   +---------------------------------------------------------------------+   #
#                                                                             #
###############################################################################
#                                                                             #
# v0.01 [03/11/2004] Flyounet :                                               #
#       > Initiale Release                                                    #
# v0.02 [04/11/2004] Flyounet :                                               #
#       + Ajout de la fonction Set_Free_Secondes.                             #
#       * Get_*_For_Free : Utilisation de floor plutôt que ceil.              #
#       - Suppression des vieilles traces de Debug nauséabondes.              #
# v0.03 [26/02/2005] Flyounet :                                               #
#       * Correction dans les commentaires.                                   #
#       * Toutes les fonctions sont préfixées d'un F4Y_ pour éviter une       #
#         quelconque intération avec d'autres fonctions. Et en plus j'aime    #
#         bien changé de temps en temps.                                      #
#                                                                             #
#                                                                             #
###############################################################################
#                                                                             #
# Légende :                                                                   #
# + --> Indique une nouveauté, un ajout de fonctionnalité.                    #
# * --> Indique une correction de bogue.                                      #
# - --> Indique la suppression d'une fonctionnalité/variable.                 #
# > --> Indique une information n'ayant pas forcément de rapport avec le code #
#                                                                             #
###############################################################################

class Fly_4Years {
  
/*
  +---------------------------------------------------------------------------+
  |                                                                           |
  |                   Les VARIABLES utilisées par la Classe                   |
  |                                                                           |
  +---------------------------------------------------------------------------+
  */
  # Identifiant de la classe
  
var $CLASSE_NAME    'Fly_4Years';
  var 
$CLASSE_VERSION 'v0.03';

  
# Date de la libération (Unix TimeStamp) ou date au format (jj/mm/aaaa hh:mm:ss)
  
var $UT_LIBERATION='04/11/2008 22:00:00';

  
# Nombre de seconde jusqu'à la libération
  
var $CI_FREE_SECONDES=0;

  
/*
  +---------------------------------------------------------------------------+
  |                                                                           |
  | Les FONCTIONS du COEUR de la Classe (Nouvelle visite, compte de visite..) |
  |                                                                           |
  +---------------------------------------------------------------------------+
  */
  
  # Constructeur de la classe
  
function Fly_4Years() {
   if(!
defined($this->CLASSE_NAME)){
    
define($this->CLASSE_NAME$this->CLASSE_VERSION);
   }
   
$this->F4Y_Compute(time());
  }

  
# Fonction qui calcul le nombre de seconde jusqu'à la libération
  
function F4Y_Compute($aut_now){
   if(
ereg("^[0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2}$"$this->UT_LIBERATION)){
    
$this->F4Y_Get_TimeStamp_For_Date($this->UT_LIBERATION);
   }
   
$this->F4Y_Set_Free_Secondes($this->UT_LIBERATION $aut_now);
  }
    
  
# Fonction qui retourne le nombre de secondes avant la libération
  
function F4Y_Get_Secondes_For_Free(){
   return((int) 
$this->CI_FREE_SECONDES);
  }

  
# Fonction qui retourne le nombre de minutes avant la libération
  
function F4Y_Get_Minutes_For_Free(){
   return((int) 
floor($this->CI_FREE_SECONDES 60));
  }

  
# Fonction qui retourne le nombre d'heures avant la libération
  
function F4Y_Get_Hours_For_Free(){
   return((int) 
floor($this->CI_FREE_SECONDES 3600));
  }

  
# Fonction qui retourne le nombre de jours avant la libération
  
function F4Y_Get_Days_For_Free(){
   return((int) 
floor($this->CI_FREE_SECONDES 86400));
  }

  
# Fonction qui retourne un tableau contenant le nombre de jours,
  # heures, minutes et secondes avant la libération
  
function F4Y_Get_Array_For_Free(){
   
$li_Free_Secondes=$this->F4Y_Get_Secondes_For_Free();
   
$t_results=array();

   
$t_results['jour']=(int) $this->F4Y_Get_Days_For_Free();
   
$this->F4Y_Set_Free_Secondes($li_Free_Secondes-$t_results['jour']*86400);

   
$t_results['heure']=(int) $this->F4Y_Get_Hours_For_Free();
   
$this->F4Y_Set_Free_Secondes($li_Free_Secondes-($t_results['jour']*86400+$t_results['heure']*3600));

   
$t_results['minute']=(int) $this->F4Y_Get_Minutes_For_Free();
   
$this->F4Y_Set_Free_Secondes($li_Free_Secondes-($t_results['jour']*86400+$t_results['heure']*3600+$t_results['minute']*60));

   
$t_results['seconde']=(int) $this->CI_FREE_SECONDES;
   
$this->F4Y_Set_Free_Secondes($li_Free_Secondes);

   return(
$t_results);
  }

  
# Fonction qui enregistre le nombre de secondes avant libération
  
function F4Y_Set_Free_Secondes($ai_secondes){
   
$this->CI_FREE_SECONDES=$ai_secondes;
  }

 
/*
  +---------------------------------------------------------------------------+
  |                                                                           |
  | Les FONCTIONS DIVERSES (Connexion Database, Message d'Erreur, etc)        |
  |                                                                           |
  +---------------------------------------------------------------------------+
  */
  
  # Fonction qui transforme une date (jj/mm/aaaa hh:mm:ss) en Unix TimeStamp
  
function F4Y_Get_TimeStamp_For_Date($as_date){
   list(
$jj$mm$aaaa$hh$mi$ss)=sscanf($as_date"%2d/%2d/%4d %2d:%2d:%2d");
   
$this->UT_LIBERATION=mktime($hh$mi$ss$mm$jj$aaaa);
  }

# end of Class Fly_4Years

?>