• 活跃天数计算用户等级模仿QQ的升级方式


      QQ等级的算法:设当前等级为N,达到当前等级最少需要的活跃天数为D,当前活跃天数为Dc,升级剩余天数为Dr,则:

      从而推出:

      好了,引述完成,懒得写字了,贴出代码:

      复制内容到剪贴板

      代码:

      <?php

      /**

      *

      *QQ等级输出类库

      * author毛毛虫<wangchong1985 gmail.com>

      * version 1.0 2008-04-09

      *

      */

      class showRank{

      /**

      *第一级图片显示字段

      */

      public$mImage1;

      /**

      *第二级图片显示字段

      */

      public$mImage2;

      /**

      *第三级图片显示字段

      */

      public$mImage3;

      /**

      *构造函数:传入图片值

      * return无

      */

      function __construct($pImage1='★',$pImage2='▲',$pImage3='●'){

      $this->mImage1=$pImage1;

      $this->mImage2=$pImage2;

      $this->mImage3=$pImage3;

      }

      /**

      *根据活跃天数计算用户等级。(模仿QQ的升级方式)

      * return int

      * access public

      */

      function get_rank($pScore){

      $temp=$pScore+4;

      $tRank=sqrt($temp)-2;

      $tRank=floor($tRank);

      return$tRank;

      }

      /**

      *用户等级标志,根据用户等级显示用户标志

      *仿照QQ等级的四进制显示

      * return str

      * access public

      */

      function get_score($pScore){

      $str='';

      $tRank=$this->get_rank($pScore);//根据分数取得等级

      $tPicNum=base_convert($tRank,10,4);//转化为四进制

      $tPicNum=strrev($tPicNum);//翻转字符串

      $tArray=str_split($tPicNum);//转化为数组

      $tNum=count($tArray);

      if($tNum<=3){

      for($i=$tNum-1;$i>=0;$i--){

      switch($i){

      case'0':

      for($j=0;$j<$tArray[$i];$j++){

      $str.=$this->mImage1;

      }

      break;

      case'1':

      for($j=0;$j<$tArray[$i];$j++){

      $str.=$this->mImage2;

      }

      break;

      case'2881064151':

      for($j=0;$j<$tArray[$i];$j++){

      $str.=$this->mImage3;

      }

      break;

      default:

      //$str=;

      break;

      }

      }

      }else{

      $str=$this->mImage3.$this->mImage3.$this->mImage3.$this->mImage3;

      }

      return$str;

      }

      }

      ?>

      以上就是显示类,再来个简单的调用实例:

      复制内容到剪贴板

      代码:

      <?php

      require_once('showRank.php');

      //定义等级图片

      $tImage1='<img src="images/time_star.gif">';

      $tImage2='<img src="images/time_yueliang.gif">';

      $tImage3='<img src="images/time_sun.gif">';

      //实例化并传输等级图片

      $tShow=new showRank($tImage1,$tImage2,$tImage3);

      //输入的活跃天数

      $tScore=1009;

      $echo=$tShow->get_score($tScore);

      //输出显示效果

      print'<div align=center>'.$echo.'</div>';

      ?>

  • 相关阅读:
    JS中的钩子(hook)机制与实现
    Java 之 注解的定义
    Java 网络编程案例:使用 MulticastSocket 实现多点广播
    Java 基于 UDP 协议的网络编程
    Java 网络编程案例四:多个客户端群聊
    Java 网络编程案例三:多个客户端上传文件
    Java 网络编程案例二:多台客户端与服务器之间的多次通信
    Java 网络编程案例一:一台客户端与服务器单次通信
    Java 之 网络常用API
    Java 之 网络编程基础知识
  • 原文地址:https://www.cnblogs.com/cbryge/p/6030858.html
Copyright © 2020-2023  润新知