|
|
|
ขอรบกวนผู้รู้หน่อยคับ...เกียวการทำปฎิทิน ที่แสดง วันหยุดงาน วันลางาน ดังรูปที่แสดงไว้คับ |
|
|
|
|
|
|
|
เห็นมีคนมาแจกไว้เยอะนะ ลองหาในกระทู้เก่าๆ ดูครับ(ถ้าจำไม่ผิดนะ)
|
|
|
|
|
Date :
2012-12-14 14:23:59 |
By :
000su000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หาไม่เจอเลยคับ TT
|
|
|
|
|
Date :
2012-12-14 14:48:38 |
By :
pongtave |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูเผินๆ เหมือนเขียน html ธรรมดา ทำเป็นตารางแล้วใส่สีลงไปในตาราง อ่ะค่ะ
|
|
|
|
|
Date :
2012-12-14 15:11:33 |
By :
NuiiMyLove |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WebCalendar.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebCalendar.aspx.cs" Inherits="WebCalendar" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Table ID="Table1" runat="server" BorderColor="Silver" BorderStyle="Solid" BackColor="LightGray"
BorderWidth="1px">
</asp:Table>
</div>
</form>
</body>
</html>
WebCalendar.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class WebCalendar : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dtHoliday = GetHoliday();
Enumerable.Range(1, 12).Select(m => new DateTime(DateTime.Now.Year, m, 1)).ToList().ForEach(m =>
{
TableRow tr = new TableRow();
Table1.Rows.Add(tr);
TableCell tdMonth = new TableCell();
tdMonth.BorderColor = System.Drawing.Color.Silver;
tdMonth.BorderStyle = BorderStyle.Solid;
tdMonth.BorderWidth = Unit.Parse("1px");
tdMonth.BackColor = System.Drawing.Color.White;
tdMonth.Text = m.ToString("MMMM", new System.Globalization.CultureInfo("th-TH"));
tr.Cells.Add(tdMonth);
Enumerable.Range(1, DateTime.DaysInMonth(m.Year, m.Month)).Select(d => new DateTime(2012, m.Month, d)).ToList().ForEach(d =>
{
if (d.Day == 1)
{
if (d.DayOfWeek != DayOfWeek.Sunday)
{
int blank = (int)d.DayOfWeek;
for (int i = 0; i < blank; i++)
{
TableCell tdBlank = new TableCell();
tr.Cells.Add(tdBlank);
}
}
}
string holidayName = (from h in dtHoliday.AsEnumerable()
where h.Field<DateTime>("HolidayDate") == d
select h.Field<string>("HolidayName")).FirstOrDefault();
TableCell tdDay = new TableCell();
tdDay.BorderColor = System.Drawing.Color.Silver;
tdDay.BorderStyle = BorderStyle.Solid;
tdDay.BorderWidth = Unit.Parse("1px");
tdDay.BackColor = System.Drawing.Color.White;
tdDay.Text = d.ToString("dd", new System.Globalization.CultureInfo("th-TH"));
tdDay.ToolTip = holidayName;
tr.Cells.Add(tdDay);
if (d.DayOfWeek == DayOfWeek.Sunday || d.DayOfWeek == DayOfWeek.Saturday)
{
tdDay.BackColor = System.Drawing.Color.Red;
tdDay.ForeColor = System.Drawing.Color.White;
}
else if (!string.IsNullOrEmpty(holidayName))
{
tdDay.BackColor = System.Drawing.Color.Magenta;
tdDay.ForeColor = System.Drawing.Color.White;
}
if (d == DateTime.Now.Date)
{
tdDay.BackColor = System.Drawing.Color.Green;
tdDay.ForeColor = System.Drawing.Color.White;
}
});
});
TableRow trHead = new TableRow();
Table1.Rows.AddAt(0, trHead);
string[] day = new string[] { "S", "M", "T", "W", "T", "F", "S" };
TableRow maxCell = (from r in Table1.Controls.OfType<TableRow>()
orderby r.Cells.Count descending
select r).First();
for (int i = 0; i < maxCell.Cells.Count; i++)
{
TableCell tdHead = new TableCell();
tdHead.BorderColor = System.Drawing.Color.Silver;
tdHead.BorderStyle = BorderStyle.Solid;
tdHead.BorderWidth = Unit.Parse("1px");
tdHead.HorizontalAlign = HorizontalAlign.Center;
tdHead.Text = (i != 0) ? day[(i - 1) % 7] : "Month";
tdHead.Font.Bold = true;
tdHead.BackColor = (tdHead.Text == "S") ? System.Drawing.Color.Red : System.Drawing.Color.LightYellow;
tdHead.ForeColor = (tdHead.Text == "S") ? System.Drawing.Color.White : System.Drawing.Color.Black;
trHead.Cells.Add(tdHead);
}
}
protected DataTable GetHoliday()
{
string[][] holiday = new string[][]
{
new string[] { "1/1/2555", "วันขึ้นปีใหม่" },
new string[] { "2/1/2555", "วันหยุดชดเชย วันขึ้นปีใหม่" },
new string[] { "3/1/2555", "วันหยุดเพิ่มเติมตามมติคณะรัฐมนตรี" },
new string[] { "7/3/2555", "วันมาฆบูชา" },
new string[] { "6/4/2555", "วันจักรี" },
new string[] { "9/4/2555", "พระราชพิธีพระราชทานเพลิงพระศพ สมเด็จพระเจ้าภคินีเธอ เจ้าฟ้าเพชรรัตนราชสุดา สิริโสภาพัณณวดี" },
new string[] { "13/4/2555", "วันสงกรานต์" },
new string[] { "14/4/2555", "วันสงกรานต์" },
new string[] { "15/4/2555", "วันสงกรานต์" },
new string[] { "16/4/2555", "วันหยุดชดเชย วันสงกรานต์" },
new string[] { "5/5/2555", "วันฉัตรมงคล" },
new string[] { "7/5/2555", "วันหยุดชดเชย วันฉัตรมงคล" },
new string[] { "9/5/2555", " วันพืชมงคล" },
new string[] { "4/6/2555", "วันวิสาขบูชา" },
new string[] { "2/8/2555", "วันอาสาฬหบูชา" },
new string[] { "3/8/2555", "วันเข้าพรรษา" },
new string[] { "12/8/2555", "วันเฉลิมพระชนมพรรษาสมเด็จพระนางเจ้าฯ พระบรมราชินีนาถ" },
new string[] { "13/8/2555", "วันหยุดชดเชย วันเฉลิมพระชนมพรรษาสมเด็จพระนางเจ้าฯ พระบรมราชินีนาถ" },
new string[] { "23/10/2555", "วันปิยมหาราช" },
new string[] { "5/12/2555", "วันเฉลิมพระชนมพรรษาพระบาทสมเด็จพระเจ้าอยู่หัว" },
new string[] { "10/12/2555", "วันรัฐธรรมนูญ" },
new string[] { "31/12/2555", "วันสิ้นปี" }
};
DataTable dtHoliday = new DataTable();
dtHoliday.Columns.Add(new DataColumn("HolidayDate", typeof(DateTime)));
dtHoliday.Columns.Add(new DataColumn("HolidayName", typeof(string)));
(from h in holiday
select new
{
HolidayDate = Convert.ToDateTime(h[0], new System.Globalization.CultureInfo("th-TH")),
HolidayName = h[1]
}).ToList().ForEach(h =>
{
DataRow drNew = dtHoliday.NewRow();
drNew["HolidayDate"] = h.HolidayDate;
drNew["HolidayName"] = h.HolidayName;
dtHoliday.Rows.Add(drNew);
});
return dtHoliday;
}
}
|
|
|
|
|
Date :
2012-12-14 15:41:27 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|