根据年月,循环输出 当月所有的天数 并附带星期 (js或者asp)左右还可以来回选择和删除!

根据年月,循环输出 当月所有的天数 并附带星期 (js或者asp)左右还可以来回选择和删除!,第1张

<script type="text/javascript">

//左右移动(s1,s2根据参数自动识别左右下拉框)

function yidong(s1, s2) {

var a = document.getElementById(s1)

var b = document.getElementById(s2)

var c = a.options

for ( var i = 0 i < c.length i++) {

if (c.options[i].selected) {

b.appendChild(c.options[i])

i--

}

}

}

//转换时间(我这里用的格式是:2013/09 ,可以自己修改想要的)

function getTime() {

document.getElementById("left").length=0 //删除下拉选项

document.getElementById("right").length=0

var time = document.getElementById("times").value //得到输入框的时间

var d = new Date(time + "/01")

var y = d.getFullYear()

var m = d.getMonth() + 1

var t1 = Date.parse(m + "/28/" + y)

var t2 = Date.parse(m + 1 + "/1/" + y)

thisMonthDays = 27 + (t2 - t1) / (60 * 60 * 24 * 1000) //当月总共的天数

// alert(m + "月份共有" + thisMonthDays + "天")

//循环当月天数

for ( var i = 1 i <= thisMonthDays i++) {

var date = new Date(time + "/" + i)

createOptions(date) //创建一个下拉列表元素

}

}

//创建下拉元素

function createOptions(dates) {

var xingqi = [ "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" ]

var year = dates.getFullYear() //得到年份 

var month = dates.getMonth() + 1//0-11 月

var date = dates.getDate() //日

var day = dates.getDay() //0-6   0是星期七   6是星期六

var times = year + "年" + month + "月" + (date<10?"0"+date:date) + "日 " + xingqi[day]

//创建下拉

var ops = document.createElement("option")

ops.appendChild(document.createTextNode(times)) //添加要显示的文本

document.getElementById("left").appendChild(ops) //添加到左边下拉框

}

</script>

<body>

输入时间:

<input type="text" name="times" id="times" value="2013/09">

<input type="button" value="确定" onclick="getTime()">

<br>

<br>

<span> <select id="left" size="10" multiple="multiple">

</select> </span>

<span>

<input type="button" value=">>>" onclick="yidong('left','right')" />

<input type="button" value="<<<" onclick="yidong('right','left')" />

</span>

<span> <select id="right" size="10" multiple="multiple">

</select> </span>

</body>

xml:

<?xml version="1.0" encoding="utf-8" ?>

<Events>

<Event><Event>

</Events>

.cs:

DataSet ds=new DataSet()

ds.ReadXml("~/test.xml")

DataRow dr=ds.Tables["Events"].NewRow()

dr["Event"]="你要做的提示!"+DateTime.Now.ToString()

ds.Tables["Events"].Rows.Add(dr)

ds.WriteXml("~/test.xml")

记事本打的 大概就是这个样子 如果有问题你在环境里调试一下吧

创建一个XML文件

1:创建一个文件对象(QFile),创建文件对象的时候可能会出现两种情况,一是文件已存在,二是

文件不存在,文件存在则我们可以直接拿来使用,不存在则需要创建

2:创建文件之后则是打开文件,并且指定文件的读写权限

3:创建一个QDomDocument文档对象

4:创建一个XML头部格式

5:将前面创建的XML头部格式追加到前面创建的XML文档对象中

6:创建根节点

7:将创建的根节点追加到前面创建的XML文档对象中

8:创建一个文本流并且将它和我们前面创建的文件对象关联起来

9:将文本流中的内容保存到我们前面创建的QDomDocument对象中,并且指定文档以几个字符缩进

10:在创建完成后,假如没有其它的 *** 作则将文件对象关闭

/***

void DocXML::createXML(QString file_path)

{

    QFile file(file_path)//关联文件名字

    if(true==file.exists())//如果存在不创建

    {

        cout<<"文件已经存在"

        return

    }

    else

    {

        //不存在创建

        //只写文件

        bool isOK=file.open(QIODevice::WriteOnly)

        if(true==isOK)//如果打开成功

        {

            //创建XML文档

            QDomDocument doc

            //创建XML头部格式

            QDomProcessingInstruction ins

            ins=doc.createProcessingInstruction("xml","version=\'1.0\' encoding=\'utf-8\'")

            //追加元素

            doc.appendChild(ins)

            //创建根节点

            QDomElement root=doc.createElement(QStringLiteral("日销售清单"))

            //QDomElement root=doc.createElement("helloworld")

            //追加

            doc.appendChild(root)

            //保存

            QTextStream stream(&file)//和文本流关联文件

            doc.save(stream,4)//保存文件并且以4个字符的方式缩进

            //关闭文件

            file.close()

        }

        else

        {

            cout<<"writeOnly error"

        }

    }

}

**/

向一个已存在的XML文件对象中添加节点和元素:

1:打开一个已存在的XML文档,并将打开函数的返回值保存下来

2:在返回值为真的情况下,我们将文件和一个QDomDocument关联起来,将关联函数的返回值保存起来

3:在关联函数的返回值为真的情况下,我们可以将前面打开的文件对象关闭

4:获取根节点元素

5:获取当前时间

6:将我们获取的当前日期转换为字符串

7:判断我们前面获取的根节点下面有没有子节点

8:在没有的情况下,我们创建一个日期子节点

9:创建一个属性值

10:设置前面创建的属性值

11:将我们创建的日期节点和我们前面创建的属性关联起来

12:将我们创建的日期节点追加到根节点下

13:写入有效数据

13.1:获取当前时间

13.2:将获取的时间转换为字符串

13.3:创建一个新的时间节点元素

13.4:创建一个属性

13.5:给我们创建的属性设置值

13.6:将时间节点元素和我们前面创建的时间节点关联

13.7:将时间节点追加到最开始创建的那个日期节点后面

13.8:创建节点里的元素

13.9:将元素和节点关联

13.10:将新的节点追加到父节点哪里

void DocXML::appendXML(QString file_Path, QStringList list)

{

    QFile file(file_Path)

    bool isOK=file.open(QIODevice::ReadOnly)

    if(true==isOK)

    {

        //文件和xml广联

        QDomDocument doc

        isOK=doc.setContent(&file)

        if(isOK)

        {

            file.close()//关联成功后关闭文件

            //获取根节点元素

            QDomElement root=doc.documentElement()

            //获取当前时间

            QDateTime date=QDateTime::currentDateTime()

            //将获取的时间装换位字符串

            QString dateStr=date.toString("yyyy-MM-dd")//2021-01-08

            //判断根节点下有没有子节点

            if(root.hasChildNodes())//有子节点

            {

            }

            else//没有子节点

            {

                //创建日期子节点

                QDomElement dataEmt=doc.createElement(QStringLiteral("日期"))

                //创建date属性

                QDomAttr dataAttr=doc.createAttribute("date")

                //设置属性的值

                dataAttr.setNodeValue(dateStr)

                //把节点和属性关联

                dataEmt.setAttributeNode(dataAttr)

                //把日期节点追加到根节点下

                root.appendChild(dataEmt)

                //写有效数据

                writeXML(doc,dataEmt,list)

            }

            //保存文件

            isOK=file.open(QIODevice::WriteOnly)

            if(isOK)

            {

                QTextStream stream(&file)

                doc.save(stream,4)

                file.close()

            }

        }

        else

        {

            cout<<"setContent error"

            return

        }

    }

    else

    {

        cout<<"readOnly error"

    }

}

void DocXML::writeXML(QDomDocument &doc, QDomElement &root, QStringList &list)

{

    //获取当前时间

    QDateTime tiem=QDateTime::currentDateTime()

    //将获取的时间装换位字符串

    QString timeStr=tiem.toString("hh-mm-ss")//16:05:03

    //创建时间节点元素

    QDomElement timeEmt=doc.createElement(QStringLiteral("时间"))

    //创建属性

    QDomAttr timeAtrr=doc.createAttribute("time")

    //给属性设置值

    timeAtrr.setNodeValue(timeStr)

    //时间节点元素和时间节点关联

    timeEmt.setAttributeNode(timeAtrr)

    //把时间节点追加到日期节点后面

    root.appendChild(timeEmt)

    //创建节点里的元素

    QDomElement factory=doc.createElement(QStringLiteral("厂家"))

    QDomElement brand=doc.createElement(QStringLiteral("品牌"))

    QDomElement price=doc.createElement(QStringLiteral("报价"))

    QDomElement number=doc.createElement(QStringLiteral("数量"))

    QDomElement total=doc.createElement(QStringLiteral("金额"))

    //将元素和节点关联

    QDomText text=doc.createTextNode(list.at(0))

    factory.appendChild(text)

    text=doc.createTextNode(list.at(1))

    brand.appendChild(text)

    text=doc.createTextNode(list.at(2))

    price.appendChild(text)

    text=doc.createTextNode(list.at(3))

    number.appendChild(text)

    text=doc.createTextNode(list.at(4))

    total.appendChild(text)

    //将新的节点追加到父节点哪里

    timeEmt.appendChild(factory)

    timeEmt.appendChild(brand)

    timeEmt.appendChild(price)

    timeEmt.appendChild(number)

    timeEmt.appendChild(total)

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11640929.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存