c# 在DAGAGRICVIEW中增加一列并赋值 计算以天数为主要依据的住宿费用计算

 if (DialogResult.No == MessageBox.Show("将要计算" + numericUpDown3.Value.ToString() + "年" + numericUpDown4.Value.ToString() + "月份的住宿费用,请确认!", "提示", MessageBoxButtons.YesNo))
            {
                return;
            }
            else
            {
               //计算月初及月末日期
                DateTime yuechu ;
                DateTime yuemo;
                int beforeYear;
                int beforeMouth;
                int year = Convert.ToInt32(numericUpDown3.Value);
                int mouth= Convert.ToInt32(numericUpDown4.Value);
                string yearstring = year.ToString();
                string mouthstring = mouth.ToString();
                if (mouth <= 1)//如果当前月是一月,那么年份就要减1  
                {
                    beforeYear = year - 1;
                    beforeMouth = 12;//上个月  
                }
                else
                {
                    beforeYear = year;
                    beforeMouth = mouth - 1;//上个月  
                }
                string yc = beforeYear + "年" + beforeMouth + "月" + 26 + "日";
                yuechu= Convert.ToDateTime(yc);
                yuemo = yuechu.AddMonths(1);
                   
                string selpeople = "select 姓名,工号,区域所属,所属部门,入住时间,退宿时间 from 员工信息表";
                pub.xsdgv(selpeople, dataGridView11);


                DataTable dt = (DataTable)dataGridView11.DataSource;
                dt.Columns.Add("住宿费用");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DateTime dtruzhu = Convert.ToDateTime(dataGridView11.Rows[i].Cells[4].Value.ToString());
                    DateTime dttuisu = Convert.ToDateTime(dataGridView11.Rows[i].Cells[5].Value.ToString());
                    double zhusufeiyong=0.02;
                    //计算住宿费用
                    if (DateTime.Compare(dttuisu, yuechu) <= 0 || DateTime.Compare(yuemo, dtruzhu) <= 0)//月初前退 或月末后入
                    {
                        zhusufeiyong = 0;
                    }
                    else
                    {
                        if (DateTime.Compare(dtruzhu, yuechu) <= 0 && DateTime.Compare(yuemo, dttuisu) <= 0)//月初前入且月末后出,即一整月
                        {
                            zhusufeiyong = 50;
                        }
                        else
                        {
                            if (DateTime.Compare(yuechu, dtruzhu) <= 0 && DateTime.Compare(dttuisu, yuemo) <= 0)//月初后入  月末前出
                            {
                                DateTime d3 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dtruzhu.Year, dtruzhu.Month, dtruzhu.Day));
                                DateTime d4 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dttuisu.Year, dttuisu.Month, dttuisu.Day));
                                int days = (d4 - d3).Days;
                                zhusufeiyong = 50 * days / 30;
                            }
                            else
                            {
                                if (DateTime.Compare(dtruzhu, yuechu) <= 0 && DateTime.Compare(dttuisu, yuemo) <= 0) //月初前入 月末前出
                                {
                                    DateTime d3 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", yuechu.Year, yuechu.Month, yuechu.Day));
                                    DateTime d4 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dttuisu.Year, dttuisu.Month, dttuisu.Day));
                                    int days = (d4 - d3).Days;
                                    zhusufeiyong = 50 * days / 30;
                                }
                                else
                                {
                                    if (DateTime.Compare(yuechu, dtruzhu) <= 0 && DateTime.Compare(yuemo, dttuisu) <= 0 && DateTime.Compare(dtruzhu,yuemo) <= 0) //月初后入 月末后出
                                    {
                                        DateTime d3 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dtruzhu.Year, dtruzhu.Month, dtruzhu.Day));
                                        DateTime d4 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", yuemo.Year, yuemo.Month, yuemo.Day));
                                        int days = (d4 - d3).Days;
                                        zhusufeiyong = 50 * days / 30;
                                    }
                                }
                                
                            }
                            
                        }
                       
                    }
                    


                     dt.Rows[i]["住宿费用"] = zhusufeiyong;


                }
                dataGridView11.DataSource = dt;
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值