数字日期转中文日期

“1910-09-09”的日期各式转换为“一九一零年九月九日”

 


  1. <?php  
  2. /*  
  3. 18、请使用一句话将类似“1910-09-09”的日期各式转换为“一九一零年九月九日”这样的各式。  
  4. (需要有通用性,是不是一句话不是关键,但不允许使用if\switch\while\for等语句)。  
  5. *系统环境:windows/linux  
  6. *编译环境:php4/php5  
  7. *输入参数:存放在in.txt,多个参数时空格分隔  
  8.                     参数1是一个日期yyyy-mm-dd  
  9.                     例如格式:1910-09-09   
  10.                               1910-11-13  
  11.     输出:out.txt  
  12. */ 
  13.  
  14. $params=getParams(1);  
  15. $argv0=trim($params[0]);  
  16.  
  17. //检查参数1  
  18. preg_match_all("/^(\d{4})\-(\d{2})\-(\d{2})$/i"$argv0,$matches)?"":error_msg("params 1 must be format yyyy-mm-dd;");  
  19. $chineseNum=array('零','一','二','三','四','五','六','七','八','九');  
  20. $chineseNumTen=array('','十','二十','三十','四十','五十','六十','七十','八十','九十');  
  21. $month=str_replace(array_keys($chineseNumTen), $chineseNumTen,floor($matches[2][0]/10)).($matches[2][0]%10);  
  22. $day=str_replace(array_keys($chineseNumTen), $chineseNumTen,floor($matches[3][0]/10)).($matches[3][0]%10);  
  23. $enDate=$matches[1][0]."年".$month."月".$day."日";  
  24. $chineseDate=str_replace(array_keys($chineseNum), $chineseNum,$enDate);  
  25. //输出结果  
  26. output($chineseDate,true);  
  27. error_msg("execute success");  
  28. /*  
  29.     从in.txt里读取参数  
  30.       
  31. */ 
  32. function getParams($paramNum)  
  33. {  
  34.     $in=file_get_contents("in.txt");  
  35.     if($in===FALSE){  
  36.         error_msg("cannot read in.txt,please check in.txt exists\n");     
  37.     }  
  38.     $in=preg_replace("/(\s+)/i"" "$in);  
  39.     //多个参数时,按照空格分隔  
  40.     $parms=split(" ",trim($in));  
  41.     if($parms===FALSE)  
  42.     {  
  43.         error_msg("cannot get param from in.txt\n");  
  44.     }  
  45.     if(count($parms) < $paramNum)  
  46.     {  
  47.         error_msg("it needs $paramNum params\n");  
  48.     }  
  49.     return $parms;  
  50. }  
  51.  
  52. /*  
  53.     把结果输出到输出文件里  
  54.     当isClean=true时清空out.txt  
  55. */ 
  56. function output($msg,$isClean=false)  
  57. {  
  58.     if($isClean)  
  59.     {  
  60.     $handle = fopen('out.txt''w');  
  61.     fclose($handle);      
  62.     }  
  63.     error_log($msg."\n", 3, "out.txt");  
  64. }  
  65. /*  
  66.     输入错误信息  
  67.     如果$is_exit表示输入信息后退出  
  68. */ 
  69. function error_msg($msg,$is_exit=true)  
  70. {  
  71.     if($is_exit)  
  72.         die($msg."\n");  
  73.     else 
  74.         echo $msg."\n";  
  75. }  
  76. ?> 

      本文转自yifangyou 51CTO博客,原文链接:http://blog.51cto.com/yifangyou/618840,如需转载请自行联系原作者



上一篇:2016年上半年信息系统项目管理师真题之上午题答案之十一(第51-55题)


下一篇:listview设置item间距和颜色渐变