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="data:images/time_star.gif">';

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

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

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

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

  //输入的活跃天数

  $tScore=1009;

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

  //输出显示效果

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

  ?>

活跃天数计算用户等级模仿QQ的升级方式的更多相关文章

  1. 数据分析体系 — 用户粘性的两个计算指标(DAU/MAU和月人均活跃天数)

    很多运营都了解DAU(日活跃用户数)和MAU(月活跃用户数)的重要性,但在某些情况下这两个数值本身并不能反映出太多问题,这个时候就要引用到[DAU/MAU]的概念,即[日活/月活] 用户粘性的两个计算 ...

  2. QQ等级图标排名说明_QQ等级表,QQ最高等级(皇冠) qq到一星要5天

    从2007年11月29日中午12:00开始,在不改变原有计算方式的情况下,加速QQ会员等级升级.QQ会员用户在原有通过每天在线2小时累积活跃天数来获取相应QQ等级增长的基础上,还可以根据QQ会员VIP ...

  3. iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)

    代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...

  4. 模仿QQ气泡聊天

    尝试了几种方案,想模仿QQ的气泡聊天,总是不尽如意.网上倒是大把的Android和Html的例子,Delphi的没找着,只能自己试着折腾. 1. 用WebBrowser加载本地html,屡次折腾,失败 ...

  5. Qt 之 模仿 QQ登陆界面——样式篇

    一.简述 今天晚上花了半天时间从QQ登录界面抠了些图,顺便加了点样式基本上实现了QQ的登陆界面全部效果.虽不说100%相似,那也有99.99%相似了哈O(∩_∩)O. QQ好像从去年开始,登录界面有了 ...

  6. 模仿QQ空间 网页设计

    目的:1.通过模仿QQ空间,全自主写代码,熟悉网页设计的流程 2.熟练的掌握HTML.CSS.JS的应用 3.将在此过程中遇到的问题及其解决方法记录在此,以便取用. 开始: 一.登陆界面(index. ...

  7. Android 模仿QQ空间风格的 UI(转)

    本文内容 环境 演示模仿QQ空间风格的UI 虽然这个 UI 跟现在的QQ空间有点差别,但是也能学到很多东西. 下载 Demo 环境 Windows 7 64 位 Eclipse ADT V22.6.2 ...

  8. ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间

    ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间

  9. 模仿QQ截图片

    原文:模仿QQ截图片 两个picturebox,一个放图片 完整代码如下 using System; using System.Collections.Generic; using System.Co ...

随机推荐

  1. 写了一个字符串的二维表: TSta

    STA 单元 (用到 System.SysUtils.TStringHelper): --------------------------------------------------------- ...

  2. 【leetcode】clone-graph

    写在前面的话: 看了看自己的博客,从一月底开始就没怎么更新过,我也确实将近5个月没怎么写代码了.今天突然觉得有些心慌,感觉手都已经生疏了.果然,随便找了道题就卡住了.隐约感觉要用map但又不太记得用法 ...

  3. [MAC] SVN lock的使用

    转载 : http://www.eefocus.com/czzheng/blog/12-03/245532_4ca94.html 如果压根没有锁lock,那么每个人都拥有一个本地copy,每个人都能自 ...

  4. vector.end() 指向的节点

    存储器vector, vector.end() 指向的是最后的结束符,而不是最后一个元素.

  5. 传染病控制(codevs 1091)

    题目描述 Description [问题背景] 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国 大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未 ...

  6. hadoop中常见的问题

    一.在root下进行格式化 这样很糟糕 这样的话,若是第一次装的话,我的建议是将生成的文件都删掉,恢复到最开始的状态, 1. 首先你需要删除 vi conf/hdfs-site.xml   配置文件的 ...

  7. 修改iptables防火墙规则解决vsftp登录后不显示文件目录的问题

    如果设置防火墙开端口可能只是常用的几个端口,这样很可能导vsftpd在被动模式时无法启动随机端口,从而造成客户端的FTP无法列出目录这样胡问题.解决方式很简单,给 vsftpd增加随机端口范围,然后把 ...

  8. 使用jquery制作可视化的组织结构

    组织结构是做项目里面经常用到的,但是要做成可视化的效果比较少,多数使用树结构来表示,但是对于客户来说不是太直观.可以用jOrgChart来实现.如下图的效果,这样就比较直观. 首先你要去下载jOrgC ...

  9. Redis笔记(三)Redis的数据类型

    前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数 ...

  10. PHP5.3 goto操作符介绍

    goto操作符是PHP5.+后新增功能,用来跳转到程序的另一位置:用法很简单:goto后面带上目标位置的标志,在目标位置上用目标名加冒号标记如下: <?php goto a; echo 'aaa ...