Retornando os dias da semana atual em ActionScript 3 / Flex

Final de ano, projetos da empresa indo a milhão, últimas provas do semestre…é, não tá fácil, a correria tá desgraçada. Passei aqui pra remover as teias de aranha do blog e compartilhar esta função que pode ser útil para alguém. Infelizmente perdi a fonte de onde encontrei esta função, mas lembro que ela tinha um erro no retorno (já corrigido por mim). A função original só retornava os dias úteis da semana, mas o que eu precisava era dos dias da semana inteira, começando no domingo. Com algumas modificações, aí está o resultado.
Essa função é bastante útil para se colocar num helper (que sabe numa dessas crio um e publico o código).

public function getCurrentWeekDays():Array{
	var output:Array = new Array();
	var formattedDate:String;
	var date:Date = new Date();

	date.setDate(date.getDate() - date.getDay() - 1);

	for (var i:int = 0; i < 7; i++) {
		date.setDate(date.getDate() + 1);

		formattedDate = (date.getDate() < 10) ? "0" + 
date.getDate().toString() : date.getDate().toString();
		formattedDate += "/";
		formattedDate += (date.getMonth() + 1 < 10) ? "0" + 
(date.getMonth() + 1).toString() : (date.getMonth() + 1).toString();

		output[i] = formattedDate;
	}
	return output;
}

E para usar:

var diasSemana:Array = getCurrentWeekDays();

Os dias serão retornados no seguinte formato: 05/11, 06/11, 07/11. A função pode ser facilmente adaptada para também retornar o ano ou retornar a data em outro formato.

É isso aí pessoal, esse é o último post do ano. Ano que vem prometo posts mais freqüentes.
Um Feliz Natal para todos e um Ano Novo repleto de realizações, muito café, código e eterno aprendizado.

Grande abraço a todos!

Transformando BBCode em XHTML com PHP e Regex

Atendendo a sugestão do amigo @Eldius, da galera do #soudev do Twitter, criei uma função que converte texto em BBCode para XHTML, usando PHP e Regex. A função não é lá das mais elegantes, mas cumpre o prometido, lembrando que o BBCode deve estar escrito corretamente para que ela funcione.

function bbcode($str){
	$str = preg_replace("@[b](.+?)[/b]@i", "<strong>$1</strong>", $str);
	$str = preg_replace("@[i](.+?)[/i]@i", "<em>$1</em>", $str);
	$str = preg_replace("@[u](.+?)[/u]@i", "<span style="text-decoration:underline">$1</span>", $str);
	$str = preg_replace("@[s](.+?)[/s]@i", "<span style="text-decoration:line-through">$1</span>", $str);
	$str = preg_replace("@[img](.+?)[/img]@i", "<img src="$1" alt="" />", $str);
	$str = preg_replace("@[url](.+?)[/url]@i", "<a href="$1">$1</a>", $str);
	$str = preg_replace("@[url=(.+?)](.+?)[/url]@i", "<a href="$1">$2</a>", $str);
	$str = preg_replace("@[email](.+?)[/email]@i", "<a href="mailto:$1">$1</a>", $str);
	$str = preg_replace("@[email=(.+?)](.+?)[/email]@i", "<a href="mailto:$1">$2</a>", $str);
	$str = preg_replace("@[size=(.+?)](.+?)[/size]@i", "<span style="font-size:$1px">$2</span>", $str);
	$str = preg_replace("@[color=(.+?)](.+?)[/color]@i", "<span style="color:$1">$2</span>", $str);
	$str = preg_replace("@[*(?:s*)]s*([^[]*)@i", "<li>$1</li>", $str);
	$str = preg_replace("@[list(?:s*)]((.|n)*?)[/list(?:s*)]@", "<ul>$1</ul>", $str);
	$str = preg_replace("@[list=1(?:s*)]((.|n)*?)[/list(?:s*)]@", "<ol>$1</ol>", $str);
	$str = preg_replace("@[list=a(?:s*)]((.|n)*?)[/list(?:s*)]@", "<ol style="list-style-type:lower-alpha">$1</ol>", $str);
	$str = preg_replace("@[list=i(?:s*)]((.|n)*?)[/list(?:s*)]@", "<ol style="list-style-type:lower-roman">$1</ol>" ,$str);
	$str = preg_replace("@[list=I(?:s*)]((.|n)*?)[/list(?:s*)]@", "<ol style="list-style-type:upper-roman">$1</ol>" ,$str);
	$str = preg_replace("@[list=A(?:s*)]((.|n)*?)[/list(?:s*)]@", "<ol style="list-style-type:upper-alpha">$1</ol>" ,$str);
	$str = preg_replace("@[quote=(.+?)](.+?)[/quote]@i", "$1 disse: <blockquote>$2</blockquote>", $str);
	$str = preg_replace("@[quote](.+?)[/quote]@i", "Citação: <blockquote>$1</blockquote>", $str);
	$str = str_replace("n", '<br />', $str);
	$str = preg_replace("@[align=(.+?)](.+?)[/align]@i", "<div style="text-align:$1">$2</div>", $str);
	$str = preg_replace("@[center](.+?)[/center]@i", "<div style="text-align:center">$1</div>", $str);
	$str = preg_replace("@1@i", "<pre>$1</pre>", $str);
	$str = str_replace("[br]", "<br />", $str);
	return($str);
}

	$string = '[b]Texto em negrito[/b][br][quote=Jonnas]Isso é BBCode[/quote] [br] [url=http://www.php.net][img]http://static.php.net/www.php.net/images/php.gif[/img][/url]';
	echo bbcode($string);

Essa função engloba os BBCodes mais conhecidos. Segue a lista abaixo:

[b] = Negrito
[i] = Itálico
[u] = Sublinhado
[s] = Texto riscado
[img] = Imagem
[url] = Link
[email] = E-mail
[size] = Tamanho do texto
[color] = Cor do texto
[list=a], [list=1], etc = Listas
[quote] = Citação
[align] = Alinhamento do texto
[center] = Centraliza o texto

</strong> = Código<br />
<strong>[br]</strong> = Quebra de página</p>
<p>Mais informações sobre BBCode podem ser encontradas <a href="http://www.phpbb.com/community/faq.php?mode=bbcode" rel="externo">aqui</a> e <a href="http://pt.wikipedia.org/wiki/BBCode" rel="externo">aqui</a>.</p>
<p>Esse código também pode ser modificado facilmente para ser usado em conjunto com o <a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter" rel="externo">SyntaxHighlighter</a>, um script para colorir o código, tornando a visualização mais amigável. Para isso, basta substituir a linha 25 por esta:</p>
<p></p>
1

Aí é usar de acordo com a nomenclatura do próprio script. Um código em PHP ficaria assim:

$nome = "Jonnas";

Caso você encontre algum bug ou tem alguma sugestão, não deixe de entrar em contato.

Abraço e até a próxima!