首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 又一个问题!!感觉脑力确实不够用了555 [已结贴,结贴人:nil2000]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nil2000
    • 等级:
    发表于:2008-07-05 18:42:52 楼主
    需要按照要求拼一个日历字符串,需求是页面上有一个日历30天,如果DB里面有该日的话,则在该日下显示一个link


    相当于将List里面的数据填入下面table!
    如果list有数据1,2,就在下面table的 <td>1 </td> <td>2 </td>里面加上link变成
    <td> <a href="link1">1 </a> </td> <td> <a href="link2">2 </a> </td>


    <table width="200" border="1">
      <tr>
        <td>1 </td>
        <td>2 </td>
        <td>3 </td>
      </tr>
      <tr>
        <td>4 </td>
        <td>5 </td>
        <td>6 </td>
      </tr>
      <tr>
        <td>7 </td>
        <td>8 </td>
        <td rowspan="2">9 </td>
      </tr>
      <tr>
        <td>&nbsp; </td>
        <td>&nbsp; </td>
      </tr>
    </table>


    如果list里面数据是:1,6,7,8,9
    则拼成下列字符串
    <table width="200" border="1">
      <tr>
        <td> <a href="link1">1 </a> </td>
        <td>2 </td>
        <td>3 </td>
      </tr>
      <tr>
        <td>4 </td>
        <td>5 </td>
        <td> <a href="link6">6 </a> </td>
      </tr>
      <tr>
        <td> <a href="link7">7 </a> </td>
        <td> <a href="link8">8 </a> </td>
        <td rowspan="2"> <a href="link9">9 </a> </td>
      </tr>
      <tr>
        <td>&nbsp; </td>
        <td>&nbsp; </td>
      </tr>
    </table>
    119  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-05 18:42:551楼 得分:0
    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【nil2000】截止到2008-07-05 18:42:49的历史汇总数据(不包括此帖):
    发帖的总数量:62                      发帖的总分数:12879                   
    结贴的总数量:59                      结贴的总分数:12340                   
    无满意结贴数:0                        无满意结贴分:0                       
    未结的帖子数:3                        未结的总分数:539                     
    结贴的百分比:95.16 %              结分的百分比:95.81 %                 
    无满意结贴率:0.00  %              无满意结分率:0.00  %                 
    值得尊敬
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-05 19:41:412楼 得分:0
    链接 URL 哪里取?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-05 19:42:323楼 得分:0
    你要作 Blog 中常见的日历把。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • craky
    • 等级:
    发表于:2008-07-05 19:56:294楼 得分:0
    [b]麻烦楼主下次发帖不要写“脑力不够”好不好[/b]
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nil2000
    • 等级:
    发表于:2008-07-05 20:04:115楼 得分:0
    引用 2 楼 sagezk 的回复:
    链接 URL 哪里取?


    url都是写死的啊..........................
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nil2000
    • 等级:
    发表于:2008-07-05 20:04:316楼 得分:0
    引用 4 楼 craky 的回复:
    麻烦楼主下次发帖不要写“脑力不够”好不好


    好吧但确实有这种感觉55
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-05 20:52:217楼 得分:0
    引用 3 楼 sagezk 的回复:
    你要作 Blog 中常见的日历把。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • nil2000
    • 等级:
    发表于:2008-07-05 23:48:408楼 得分:0
    差不多吧!
    就是根据list里面的数据,给table里面相应的td加一个link


    需要按照要求拼一个日历字符串,需求是页面上有一个日历30天,如果DB里面有该日的话,则在该日下显示一个link


    相当于将List里面的数据填入下面table!
    如果list有数据1,2,就在下面table的 <td>1 </td> <td>2 </td>里面加上link变成
    <td> <a href="link1">1 </a> </td> <td> <a href="link2">2 </a> </td>


    <table width="200" border="1">
      <tr>
        <td>1 </td>
        <td>2 </td>
        <td>3 </td>
      </tr>
      <tr>
        <td>4 </td>
        <td>5 </td>
        <td>6 </td>
      </tr>
      <tr>
        <td>7 </td>
        <td>8 </td>
        <td rowspan="2">9 </td>
      </tr>
      <tr>
        <td>&nbsp; </td>
        <td>&nbsp; </td>
      </tr>
    </table>


    如果list里面数据是:1,6,7,8,9
    则拼成下列字符串
    <table width="200" border="1">
      <tr>
        <td> <a href="link1">1 </a> </td>
        <td>2 </td>
        <td>3 </td>
      </tr>
      <tr>
        <td>4 </td>
        <td>5 </td>
        <td> <a href="link6">6 </a> </td>
      </tr>
      <tr>
        <td> <a href="link7">7 </a> </td>
        <td> <a href="link8">8 </a> </td>
        <td rowspan="2"> <a href="link9">9 </a> </td>
      </tr>
      <tr>
        <td>&nbsp; </td>
        <td>&nbsp; </td>
      </tr>
    </table>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 00:21:329楼 得分:0
    怎么又来一个啊,日历的话,可不能这么拼字符串啊,比如 1 号是周日,那可以放在第 1 格,
    如果是周 2 那么 1 就得放在第 3 格上的啊。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 00:44:3210楼 得分:0
    学习一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 00:50:4011楼 得分:0
    用动态写的方法不行吗?
    就在脚上作判断,如果有就,把你的连接标签write,没有就不write,这样就可以啦
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 01:12:3912楼 得分:0
    写了一个,可以参考一下:

    Java code
    import java.util.ArrayList; import java.util.Calendar; import java.util.List; public class Test { public static void main(String[] args) { List<Integer> links = new ArrayList<Integer>(); links.add(3); links.add(6); links.add(9); links.add(12); links.add(15); links.add(18); links.add(21); links.add(24); links.add(27); links.add(30); // 采用当月的方式进行构造,现在是 2008 年 7 月 Nil2000 nil = new Nil2000(links); System.out.println(nil.toString()); } } class Nil2000 { /** * 生成日历的 Calendar */ private Calendar calendar; /** * 有链接的日期 */ private List<Integer> links; private static String TABLE_START = "<table width=\"200\" border=\"1\">\n"; private static String TABLE_END = "<table>\n"; private static String TR_START = " <tr>\n"; private static String TR_END = " </tr>\n"; private static String TD_START = " <td>"; private static String TD_END = "</td>\n"; private static String TD_BLANK = TD_START + "&nbsp;" + TD_END; /** * 链接字符串的常量,需要将 {0} 替换成指定字符串 */ private static String LINK = "<a href=\"link{0}\">{0}</a>"; /** * 构造当月的日历 * @param links 需要带有链接的日期 */ public Nil2000(List<Integer> links) { this(Calendar.getInstance(), links); } /** * 构造指定日期月份的日历 * @param calendar 指定日期 * @param links 需要带有链接的日期 */ public Nil2000(Calendar calendar, List<Integer> links) { calendar.set(Calendar.DATE, 1); this.calendar = calendar; this.links = links; } public String toString() { StringBuffer sb = new StringBuffer(); sb.append(TABLE_START); sb.append(TR_START); int total = 1; // 若非周日时,在添加空的 <td> 串,以空开,将 1 号显示在指定的位置上 for(int k = calendar.get(Calendar.DAY_OF_WEEK); total < k; total++) { appendBlank(sb); } for(int i = 1, k = calendar.getActualMaximum(Calendar.DATE); i <= k; i++) { if((total - 1) % 7 == 0) { sb.append(TR_END).append(TR_START); } appendDate(sb, i); total++; } // 最后的日期如果不是周六,则在后面添加上若干个 <td> 串,以填满表格 while((total - 1) % 7 != 0) { appendBlank(sb); total++; } sb.append(TR_START); sb.append(TABLE_END); return sb.toString(); } private void appendBlank(StringBuffer sb) { sb.append(TD_BLANK); } private void appendDate(StringBuffer sb, int date) { sb.append(TD_START); if(links.contains(date)) { sb.append(LINK.replace("{0}", String.valueOf(date))); } else { sb.append(date); } sb.append(TD_END); } }


    输出的字符串为:

    HTML code
    <table width="200" border="1"> <tr> <td>&nbsp;</td> <td>&nbsp;</td> <td>1</td> <td>2</td> <td><a href="link3">3</a></td> <td>4</td> <td>5</td> </tr> <tr> <td><a href="link6">6</a></td> <td>7</td> <td>8</td> <td><a href="link9">9</a></td> <td>10</td> <td>11</td> <td><a href="link12">12</a></td> </tr> <tr> <td>13</td> <td>14</td> <td><a href="link15">15</a></td> <td>16</td> <td>17</td> <td><a href="link18">18</a></td> <td>19</td> </tr> <tr> <td>20</td> <td><a href="link21">21</a></td> <td>22</td> <td>23</td> <td><a href="link24">24</a></td> <td>25</td> <td>26</td> </tr> <tr> <td><a href="link27">27</a></td> <td>28</td> <td>29</td> <td><a href="link30">30</a></td> <td>31</td> <td>&nbsp;</td> <td>&nbsp;</td> <tr> <table>


    HTML 显示的效果图



    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 01:18:2613楼 得分:0
    private static String  ----->  private final static String
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 01:47:5914楼 得分:0
    贴个简单易用的:
    Java code
    import java.util.Calendar; public class BlogCalendar { /** * 生成 Blog 日历 HTML 代码。 * @param year 年 * @param month 月(一月为 1) * @param dates 日期列表 * @param urls 文章 URL 列表 * @return 日历 HTML 代码 */ public static String getCalendarHtml(int year, int month, int[] dates, String[] urls) { if (month < 1 || month > 12) return null; if (dates == null || urls == null) return null; if (dates.length != urls.length) return null; StringBuilder sb = new StringBuilder(); Calendar ca = Calendar.getInstance(); ca.set(year, month - 1, 1); final int week = ca.get(Calendar.DAY_OF_WEEK) - 1; ca.add(Calendar.MONTH, 1); ca.add(Calendar.DATE, -1); final int days = ca.get(Calendar.DATE); sb.append("<table border=\"1\" cellpadding=\"6\" cellspacing=\"0\">\n"); for (int r = 0, n = 1; r < 6; ++r) { sb.append("\t<tr>\n"); for (int c = 0; c < 7; ++c) { if (r == 0 && c < week) { sb.append("\t\t<td colspan=\""); sb.append(week); sb.append("\">&nbsp;</td>\n"); c = week; } if (n <= days) { sb.append("\t\t<td>"); int idx = -1; for (int i = 0; i < dates.length; ++i) { if (dates[i] == n) { idx = i; break; } } if (idx == -1) { sb.append(n); } else { sb.append("<a href=\""); sb.append(urls[idx]); sb.append("\">"); sb.append(n); sb.append("</a>"); } sb.append("</td>\n"); ++n; } else { sb.append("\t\t<td colspan=\""); sb.append(7 - c); sb.append("\">&nbsp;</td>\n"); c = 6; } } sb.append("\t</tr>\n"); } sb.append("</table>\n"); return sb.toString(); } //测试代码 public static void main(String[] args) { String s = getCalendarHtml( 2008, 7, new int[] {1, 12, 26}, new String[] {"http://hi.csdn.net/sagezk", "http://www.csdn.net", "http://www.g.cn"} ); System.out.println(s); } }


    输出字符串:
    HTML code
    <table border="1" cellpadding="6" cellspacing="0"> <tr> <td colspan="2">&nbsp;</td> <td><a href="http://hi.csdn.net/sagezk">1</a></td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> </tr> <tr> <td>6</td> <td>7</td> <td>8</td> <td>9</td> <td>10</td> <td>11</td> <td><a href="http://www.csdn.net">12</a></td> </tr> <tr> <td>13</td> <td>14</td> <td>15</td> <td>16</td> <td>17</td> <td>18</td> <td>19</td> </tr> <tr> <td>20</td> <td>21</td> <td>22</td> <td>23</td> <td>24</td> <td>25</td> <td><a href="http://www.g.cn">26</a></td> </tr> <tr> <td>27</td> <td>28</td> <td>29</td> <td>30</td> <td>31</td> <td colspan="2">&nbsp;</td> </tr> <tr> <td colspan="7">&nbsp;</td> </tr> </table>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 17:06:1315楼 得分:0
    问题都读不清爽!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 17:41:2016楼 得分:0


    值得学习~~~~~