<?php

class Funcoes_data
{
	public function converterDataMaskParaDataPHP($mask)
	{
		$mascaraData = "";
		switch($mask)
		{
			case "00/00/0000 00:00:00":
				$mascaraData = "d/m/Y H:i:s";
			break;
			case "00/00/0000 00:00":
				$mascaraData = "d/m/Y H:i";
			break;
			case "00/00/0000":
				$mascaraData = "d/m/Y";
			break;
			case "00/0000":
				$mascaraData = "m/Y";
			break;
			case "00:00:00":
				$mascaraData = "H:i:s";
			break;
			case "00:00":
				$mascaraData = "H:i";
			break;
			case "00/00":
				$mascaraData = "d/m";
			break;
		}
		return $mascaraData;
		
	}
	
	public function converterDataMaskParaDataBD($mask)
	{
		$mascaraData = "";
		switch($mask)
		{
			case "00/00/0000 00:00:00":
				$mascaraData = "Y-m-d H:i:s";
			break;
			case "00/00/0000 00:00":
				$mascaraData = "Y-m-d H:i";
			break;
			case "00/00/0000":
				$mascaraData = "Y-m-d";
			break;
			case "00/0000":
				$mascaraData = "Y-m";
			break;
			case "00:00:00":
				$mascaraData = "H:i:s";
			break;
			case "00:00":
				$mascaraData = "H:i";
			break;
			case "00/00":
				$mascaraData = "m-d";
			break;
		}
		return $mascaraData;
		
	}
	function StrToDataHora($codBD, $d,$m,$y,$h,$mi,$s)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  STR_TO_DATE('".$d."/".$m."/".$y." ".$h.":".$mi.":".$s."', '%d/%m/%Y %H:%i:%s') ";
			break;
		case 2:
			return " TO_DATE('".$d."/".$m."/".$y." ".$h.":".$mi.":".$s."', 'DD/MM/YYYY HH24:MI:SS') ";
			break;
		case 3:
			 return "  convert(varchar,@d,120),120,'yyyy-mm-dd hh:mi:ss(24h) ";
			break;
		}
	}

	//função para string para data
	function StrToDataHoraMinuto($codBD, $str)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  STR_TO_DATE('".$str."', '%d/%m/%Y %H:%i') ";
			break;
		case 2:
			return " TO_DATE('".$str."', 'DD/MM/YYYY HH24:MI') ";
			break;
		case 3:
			 return "  convert(varchar,@d,120),120,'yyyy-mm-dd hh:mi:ss(24h) ";
			break;
		}
	}

	function StrToDataHoraMinutoSegundo($codBD, $str)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  STR_TO_DATE('".$str."', '%d/%m/%Y %H:%i:%s') ";
			break;
		case 2:
			return " TO_DATE('".$str."', 'DD/MM/YYYY HH24:MI:SS') ";
			break;
		case 3:
			 return "  convert(varchar,@d,120),120,'yyyy-mm-dd hh:mi:ss(24h) ";
			break;
		}
	}

	function HoraToHMinutos($codBD, $num) {
	  /*$num = number_format($num,2);
	  $num_temp = explode('.', $num);
	  $num_temp[1] = $num-(number_format($num_temp[0],2));
	  $saida = number_format(((($num_temp[1]) * 60 / 100)+$num_temp[0]),2);
	  $saida = strtr($saida,'.',':');
	  return $saida;*/
	  $num = HoraToStrHoraMinuto($num);
	  $result =0;
	  $array = explode(':', $num);
	  if (isset($array[1]))
	  {
			$result = ((intval($array[0])*60) + intval($array[1]));//(round($array[0]))*60) + intval(round(floatval($array[1])/100 *60));
	  }	
	  else
	  {
		  $result = intval(round($array[0]))*60; 
	  }	  
	  return $result ;
	}



	function HoraToStrHoraMinuto($codBD, $num) {

	  $result  = HoraToHoraMinuto($num);
	  if ($result == "0:00")
	  {
		 $result = ""; 
	  } 
	  return $result; 	
	}

	//função para string para data
	function StrToData($codBD, $str)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  STR_TO_DATE('".$str."', '%d/%m/%Y') ";
			break;
		case 2:
			return " TO_DATE('".$str."', 'DD/MM/YYYY') ";
			break;
		case 3:
			 return "  convert(varchar,@d,120),120,'yyyy-mm-dd";
			break;
		}
	}
	function StrToMesAno($codBD, $str)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  STR_TO_DATE('".$str."', '%m/%Y') ";
			break;
		case 2:
			return " TO_DATE('".$str."', 'MM/YYYY') ";
			break;
		case 3:
			 return "  convert(varchar,@d,120),120,'yyyy-mm-dd";
			break;
		}
	}

	//retornar dia da semana int 
	function dataToDiaSemana($codBD, $str)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  DAYOFWEEK(".$str.") ";
			break;
		case 2:
			return " TO_CHAR(".$str.", 'd') ";
			break;
		case 3:
			 return "  convert(varchar,@d,120),120,'yyyy-mm-dd hh:mi:ss(24h) ";
			break;
		}
	}

	//// função retorna data atual
	function dataAtual($codBD)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  CURRENT_DATE() ";
			break;
		case 2:
			return "  SYSDATE ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}

	function dataHoraAtual($codBD)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  NOW() ";
			break;
		case 2:
			return "  SYSDATE ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}

	//// função retorna data para string no formato DD/MM/YYYY
	function dataToString($codBD, $campo)
	{
		//DIA MES ANO
		switch ($codBD) {
		case "mysql":
			return "  DATE_FORMAT(".$campo.",'%d/%m/%Y') ";
			break;
		case 2:
			return "  TO_CHAR(".$campo.",'DD/MM/YYYY') ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}

	//// adiniona um dia na data
	function add_day_to_date($codBD, $campo, $qtdDias)
	{
		//DIA MES ANO
		switch ($codBD) {
		case "mysql":
			return " DATE_ADD(".$campo.",INTERVAL ".$qtdDias." DAY) ";
			break;
		case 2:
			return " ".$campo."+".$qtdDias;
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}

	//// função retorna data E HORA para string no formato DD/MM/YYYY HH24:MI
	function dataHoraToString($codBD, $campo)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  DATE_FORMAT(".$campo.",'%d/%m/%Y %H:%i') ";
			break;
		case 2:
			return "  TO_CHAR(".$campo.",'DD/MM/YYYY HH24:MI:SS') ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}

	//// função retorna data E HORA para string no formato MM/YYYY 
	function mesAnoToString($codBD, $campo)
	{
		// MES ANO 
		switch ($codBD) {
		case "mysql":
			return "  DATE_FORMAT(".$campo.",'%m/%Y') ";
			break;
		case 2:
			return "  TO_CHAR(".$campo.",'MM/YYYY') ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}

	//// função retorna data E HORA para string no formato DD/MM/YYYY HH24:MI
	function dataHoraMinutoToString($codBD, $campo)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  DATE_FORMAT(".$campo.",'%d/%m/%Y %H:%i') ";
			break;
		case 2:
			return "  TO_CHAR('".$campo."','DD/MM/YYYY HH24:MI') ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}

	function dataHoraMinutSegundooToString($codBD, $campo)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  DATE_FORMAT(".$campo.",'%d/%m/%Y %H:%i:%s') ";
			break;
		case 2:
			return "  TO_CHAR('".$campo."','DD/MM/YYYY HH24:MI:SS') ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}

	//// função retorna  HORA para string no formato  HH24:MI:SS
	function horaToString($codBD, $campo)
	{
		//HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  DATE_FORMAT(".$campo.",'%H:%i:%s') ";
			break;
		case 2:
			return "  TO_CHAR(".$campo.",'HH24:MI:SS') ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}

	//// função retorna  HORA para string no formato  HH24:MI:SS
	function horaMinutoToString($codBD, $campo)
	{
		//HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  DATE_FORMAT(".$campo.",'%H:%i') ";
			break;
		case 2:
			return "  TO_CHAR(".$campo.",'HH24:MI') ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}

	function horaMinutoSegundoToString($codBD, $campo)
	{
		//HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  DATE_FORMAT(".$campo.",'%H:%i:%s') ";
			break;
		case 2:
			return "  TO_CHAR(".$campo.",'HH24:MI:SS') ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}


	//// função retorna data E HORA para string no formato DD/MM/YYYY HH24:MI:SS
	function StrToHoraMinutoSegundo($codBD, $campo)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  STR_TO_DATE('".$campo."','%H:%i:%s') ";
			break;
		case 2:
			return "  TO_DATE('".$campo."','HH24:MI:SS') ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}
	//// função retorna data E HORA para string no formato DD/MM/YYYY HH24:MI:SS
	function StrToHoraMinuto($codBD, $campo)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  STR_TO_DATE('".$campo."','%H:%i') ";
			break;
		case 2:
			return "  TO_DATE('".$campo."','HH24:MI') ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}
	
	//// 
	function str_para_int($codBD, $campo)
	{
		//DIA MES ANO HORA MINUTO SEGUNDO
		switch ($codBD) {
		case "mysql":
			return "  CAST(".$campo." as unsigned integer) ";
			break;
		case 2:
			return "  TO_NUMBER(".$campo.") ";
			break;
		case 3:
			 return "  SYSDATETIME() ";
			break;
		}
	}


	
}