学习时间转换的小例子,涉及文本转时间戳、时间戳转文本、双击、单击事件,复制到剪贴板、从剪贴板读取内容等知识点;

源代码:

import win.ui;
import fsys.time;
import win
import win.clip
/*DSG{{*/
mainForm = win.form(text="时间戳转换";right=757;bottom=467;max=false)
mainForm.add(
button={cls="button";text="时间戳转成文本";left=276;top=143;right=466;bottom=171;z=15};
button3={cls="button";text="文本转成时间戳";left=276;top=96;right=466;bottom=124;z=9};
button4={cls="button";text="清空";left=271;top=376;right=414;bottom=423;z=10};
current_stamp={cls="edit";left=102;top=54;right=264;bottom=82;edge=1;multiline=1;z=4};
current_stamp2={cls="edit";text="双击复制";left=578;top=96;right=740;bottom=124;edge=1;multiline=1;z=8};
current_stamp3={cls="edit";text="单击粘贴";left=104;top=144;right=266;bottom=172;edge=1;multiline=1;z=12};
current_time={cls="edit";left=102;top=15;right=264;bottom=43;edge=1;multiline=1;z=2};
current_time2={cls="edit";text="单击粘贴";left=103;top=96;right=265;bottom=124;edge=1;multiline=1;z=6};
current_time3={cls="edit";text="双击复制";left=578;top=144;right=740;bottom=172;edge=1;multiline=1;z=14};
static={cls="static";text="当前时间";left=16;top=14;right=91;bottom=42;center=1;transparent=1;z=1};
static2={cls="static";text="当前时间戳";left=17;top=53;right=92;bottom=81;center=1;transparent=1;z=3};
static3={cls="static";text="文本时间";left=16;top=96;right=91;bottom=124;center=1;transparent=1;z=5};
static4={cls="static";text="时间戳";left=492;top=96;right=567;bottom=124;center=1;transparent=1;z=7};
static5={cls="static";text="时间戳";left=16;top=143;right=91;bottom=171;center=1;transparent=1;z=11};
static6={cls="static";text="文本时间";left=492;top=143;right=567;bottom=171;center=1;transparent=1;z=13}
)
/*}}*/

mainForm.setInterval(
function() {
var now = time.now();
mainForm.current_time.text = time(now, "%Y-%m-%d %H:%M:%S");
//mainForm.current_stamp.text = tostring(tonumber(time(now)));
mainForm.current_stamp.text = time.stamp(true);
// 定时执行参数 @1 指定的回调函数,参数 @2 指定间隔毫秒数
}, 1000
);

//复制当前时间到剪贴板
mainForm.current_time.wndproc = function(hwnd, message, wParam, lParam) {
if (message == 0x203 /*_WM_LBUTTONDBLCLK*/ ) {
win.clip.write(mainForm.current_time.text);
return true;
}
}
//复制当前时间戳到剪贴板
mainForm.current_stamp.wndproc = function(hwnd, message, wParam, lParam) {
if (message == 0x203 /*_WM_LBUTTONDBLCLK*/ ) {
win.clip.write(mainForm.current_stamp.text);
return true;
}
}

//从剪贴板读取数据
mainForm.current_time2.oncommand = function(id, event) {
mainForm.current_time2.text = win.clip.read();
}

mainForm.button3.oncommand = function(id, event) {
var input = mainForm.current_time2.text
if (input == "") {
return;
}
if string.indexAny(input, "-")==null {
return;
}
mainForm.current_stamp2.text = tostring(tonumber(time(input)) * 1000);
}

msTime = function(ms) {
var tm = time(ms / 1000, "%Y-%m-%d %H:%M:%S");
return tm;
}
//从剪贴板读取数据
mainForm.current_stamp3.oncommand = function(id, event) {
mainForm.current_stamp3.text = win.clip.read();
}
mainForm.button.oncommand = function(id, event) {
var input = mainForm.current_stamp3.text
if (input == "") {
return;
}
if string.indexAny(input, "-")!=null {
return;
}
mainForm.current_time3.text = msTime(input);
}
//复制当前时间到剪贴板
mainForm.current_time3.wndproc = function(hwnd, message, wParam, lParam) {
if (message == 0x203 /*_WM_LBUTTONDBLCLK*/ ) {
win.clip.write(mainForm.current_time3.text);
return true;
}
}
//复制当前时间戳到剪贴板
mainForm.current_stamp2.wndproc = function(hwnd, message, wParam, lParam) {
if (message == 0x203 /*_WM_LBUTTONDBLCLK*/ ) {
win.clip.write(mainForm.current_stamp2.text);
return true;
}
}

mainForm.button4.oncommand = function(id, event) {
mainForm.current_time2.text = ""
mainForm.current_stamp2.text = ""
mainForm.current_time3.text = ""
mainForm.current_stamp3.text = ""
}

mainForm.show();
return win.loopMessage();