Calendar.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
//Downloads By http://www.veryhuo.com
namespace SetWallpaper
{
    public class Calendar
    {
        /// <summary>
        /// 计算星期几: 星期日至星期六的值为0-6
        /// </summary>
        public static int GetWeeksOfDate(int year, int month, int day)
        {
            DateTime dt = new DateTime(year, month, day);
            DayOfWeek d = dt.DayOfWeek;
            return Convert.ToInt32(d);
        }     
        /// <summary>
        /// 获取指定年月的天数
        /// </summary>
        public static int GetDaysOfMonth(int year, int month)
        {
            DateTime dtCur = new DateTime(year, month, 1);
            int days = dtCur.AddMonths(1).AddDays(-1).Day;
            return days;
        }
        /// <summary>
        /// 获取在图片上生成日历的图片
        /// </summary>
        public static Bitmap GetCalendarPic(Image img)
        {
            Bitmap bmp = new Bitmap(img.Width, img.Height, PixelFormat.Format24bppRgb);
            bmp.SetResolution(72, 72);
            using (Graphics g = Graphics.FromImage(bmp))
            {                
                g.DrawImage(img, 0, 0, img.Width, img.Height);                              
              
                DateTime dtNow = DateTime.Now;
                int year = dtNow.Year;
                int month = dtNow.Month;
                int day = dtNow.Day;
                int day1st = Calendar.GetWeeksOfDate(year, month, 1); //第一天星期几
                int days = Calendar.GetDaysOfMonth(year, month); //获取想要输出月份的天数

                int startX = img.Width / 2; //开始的X轴位置
                int startY = img.Height / 4; //开始的Y轴位置
                int posLen = 50; //每次移动的位置长度
                int x = startX + day1st * posLen; //1号的开始X轴位置
                int y = startY + posLen * 2;//1号的开始Y轴位置

                Calendar.DrawStr(g, dtNow.ToString("yyyy年MM月dd日"), startX, startY);
                string[] weeks = { "日", "一", "二", "三", "四", "五", "六" };
                for (int i = 0; i < weeks.Length; i++)
                    Calendar.DrawStr(g, weeks[i], startX + posLen * i, startY + posLen);

                for (int j = 1; j <= days; j++)
                {
后面还有 50 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。