用笨办法自制了一个日期选择框,欢迎大佬改为控件。

import fonts.fontAwesome;
import win.ui;
import time;
/*DSG{{*/
var winform = win.form(text="日期选择:";right=343;bottom=290;border="dialog frame")
winform.add(
plusD1={cls="plus";text="1";left=230;top=112;right=330;bottom=162;bgcolor=0xFFB0B28F;border={top=1;bottom=1;color=0xFF9696F6};font=LOGFONT(h=-28);notify=1;z=8};
plusD2={cls="plus";text="2";left=230;top=162;right=330;bottom=212;border={bottom=1;color=0xFF9696F6};editable=1;font=LOGFONT(h=-32);notify=1;z=9};
plusD3={cls="plus";text="3";left=230;top=212;right=330;bottom=262;bgcolor=0xFFB0B28F;border={bottom=1;color=0xFF9696F6};font=LOGFONT(h=-28);notify=1;z=10};
plusM1={cls="plus";text="1";left=122;top=112;right=222;bottom=162;bgcolor=0xFFB0B28F;border={top=1;bottom=1;color=0xFF9696F6};font=LOGFONT(h=-28);notify=1;z=5};
plusM2={cls="plus";text="2";left=122;top=162;right=222;bottom=212;border={bottom=1;color=0xFF9696F6};editable=1;font=LOGFONT(h=-32);notify=1;z=6};
plusM3={cls="plus";text="3";left=122;top=212;right=222;bottom=262;bgcolor=0xFFB0B28F;border={bottom=1;color=0xFF9696F6};font=LOGFONT(h=-28);notify=1;z=7};
plusSelect={cls="plus";left=13;top=12;right=278;bottom=56;align="right";border={bottom=1;color=0xFF969696};editable=1;font=LOGFONT(h=-27);textPadding={top=6;bottom=2};z=4};
plusToday={cls="plus";text="今日";left=283;top=15;right=330;bottom=55;font=LOGFONT(h=-16);notify=1;z=12};
plusY1={cls="plus";text="2025";left=13;top=112;right=113;bottom=162;bgcolor=0xFFB0B28F;border={top=1;bottom=1;color=0xFF9696F6};font=LOGFONT(h=-28);notify=1;z=1};
plusY2={cls="plus";text="2026";left=13;top=162;right=113;bottom=212;border={bottom=1;color=0xFF9696F6};editable=1;font=LOGFONT(h=-32);notify=1;z=2};
plusY3={cls="plus";text="2027";left=13;top=212;right=113;bottom=262;bgcolor=0xFFB0B28F;border={bottom=1;color=0xFF9696F6};font=LOGFONT(h=-28);notify=1;z=3};
static={cls="static";text="年 月 日";left=16;top=67;right=328;bottom=108;align="center";font=LOGFONT(h=-29);transparent=1;z=11}
)
/*}}*/
style={
background={
default=0x668B2BF0;
disabled=0xFFCCCCCC;
hover=0xFF928BB3
};
color={
default=0xFF000000;
disabled=0xFF6D6D6D
}
}
style2={
background={
default=0xFFe3e3e3;
};
color={
default=0xFF808080;
}
}
style3={
background={
default=0xFFe3e3e3;
};
color={
default=0xFFe3e3e3;
}
}
winform.plusY1.skin(style2)
winform.plusY2.skin(style)
winform.plusY3.skin(style2)
winform.plusM1.skin(style2)
winform.plusM2.skin(style)
winform.plusM3.skin(style2)
winform.plusD1.skin(style2)
winform.plusD2.skin(style)
winform.plusD3.skin(style2)
winform.plusToday.skin(style)
winform.plusY1.onMouseHover = function(wParam,lParam){
jsq=winform.setInterval(
function(){
winform.plusY1.text=tonumber(winform.plusY1.text)>1900?(tonumber(winform.plusY1.text)-1):1900;
winform.plusY1.skin=tonumber(winform.plusY1.text)!=1900?style2:style3;
winform.plusY3.skin=style2;
winform.plusY2.text=tonumber(winform.plusY1.text)+1;
winform.plusY3.text=tonumber(winform.plusY1.text)+2;
winform.plusSelect.text=winform.plusY2.text++"年"++winform.plusM2.text++"月"++winform.plusD2.text++"日";
},200
);
}
winform.plusY1.onMouseLeave = function(wParam,lParam){
winform.clearInterval(jsq) ;
};
winform.plusY2.onMouseHover = function(wParam,lParam){
}
winform.plusY3.onMouseHover = function(wParam,lParam){
jsq=winform.setInterval(
function(){
winform.plusY3.text=tonumber(winform.plusY3.text)<2100?(tonumber(winform.plusY3.text)+1):2100;
winform.plusY3.skin=tonumber(winform.plusY3.text)!=2100?style2:style3;
winform.plusY1.skin=style2;
winform.plusY2.text=tonumber(winform.plusY3.text)-1;
winform.plusY1.text=tonumber(winform.plusY3.text)-2;
winform.plusSelect.text=winform.plusY2.text++"年"++winform.plusM2.text++"月"++winform.plusD2.text++"日";
},200
);
}
winform.plusY3.onMouseLeave = function(wParam,lParam){
winform.clearInterval(jsq) ;
};
winform.plusM1.onMouseHover = function(wParam,lParam){
jsq=winform.setInterval(
function(){
winform.plusM1.text=tonumber(winform.plusM1.text)>0?(tonumber(winform.plusM1.text)-1):0;
winform.plusM1.skin=tonumber(winform.plusM1.text)!=0?style2:style3;
winform.plusM3.skin=style2;
winform.plusM2.text=tonumber(winform.plusM1.text)+1;
winform.plusM3.text=tonumber(winform.plusM1.text)+2;
winform.plusSelect.text=winform.plusY2.text++"年"++winform.plusM2.text++"月"++winform.plusD2.text++"日";
},200
);
}
winform.plusM1.onMouseLeave = function(wParam,lParam){
winform.clearInterval(jsq) ;
};
winform.plusM2.onMouseHover = function(wParam,lParam){
}
winform.plusM3.onMouseHover = function(wParam,lParam){
jsq=winform.setInterval(
function(){
winform.plusM3.text=tonumber(winform.plusM3.text)<13?(tonumber(winform.plusM3.text)+1):13;
winform.plusM3.skin=tonumber(winform.plusM3.text)!=13?style2:style3;
winform.plusM1.skin=style2;
winform.plusM2.text=tonumber(winform.plusM3.text)-1;
winform.plusM1.text=tonumber(winform.plusM3.text)-2;
winform.plusSelect.text=winform.plusY2.text++"年"++winform.plusM2.text++"月"++winform.plusD2.text++"日";
},200
);
}
winform.plusM3.onMouseLeave = function(wParam,lParam){
winform.clearInterval(jsq) ;
};
winform.plusD1.onMouseHover = function(wParam,lParam){
jsq=winform.setInterval(
function(){
winform.plusD1.text=tonumber(winform.plusD1.text)>0?(tonumber(winform.plusD1.text)-1):0;
winform.plusD1.skin=tonumber(winform.plusD1.text)!=0?style2:style3;
winform.plusD3.skin=style2;
winform.plusD2.text=tonumber(winform.plusD1.text)+1;
winform.plusD3.text=tonumber(winform.plusD1.text)+2;
winform.plusSelect.text=winform.plusY2.text++"年"++winform.plusM2.text++"月"++winform.plusD2.text++"日";
},200
);
}
winform.plusD1.onMouseLeave = function(wParam,lParam){
winform.clearInterval(jsq) ;
};
winform.plusD2.onMouseHover = function(wParam,lParam){
}
winform.plusD3.onMouseHover = function(wParam,lParam){
jsq=winform.setInterval(
function(){
winform.plusD3.text=tonumber(winform.plusD3.text)<32?(tonumber(winform.plusD3.text)+1):32;
winform.plusD3.skin=tonumber(winform.plusD3.text)!=32?style2:style3;
winform.plusD1.skin=style2;
winform.plusD2.text=tonumber(winform.plusD3.text)-1;
winform.plusD1.text=tonumber(winform.plusD3.text)-2;
winform.plusSelect.text=winform.plusY2.text++"年"++winform.plusM2.text++"月"++winform.plusD2.text++"日";
},200
);
}
winform.plusD3.onMouseLeave = function(wParam,lParam){
winform.clearInterval(jsq) ;
};
winform.plusToday.oncommand = function(id,event){
winform.plusY1.text=time.now().year-1;
winform.plusY2.text=time.now().year;
winform.plusY3.text=time.now().year+1;
winform.plusM1.text=time.now().month-1;
winform.plusM2.text=time.now().month;
winform.plusM3.text=time.now().month+1;
winform.plusD1.text=time.now().day-1;
winform.plusD2.text=time.now().day;
winform.plusD3.text=time.now().day+1;
winform.plusSelect.text=winform.plusY2.text++"年"++winform.plusM2.text++"月"++winform.plusD2.text++"日";
}
winform.plusToday.oncommand();
winform.show();
win.loopMessage();