MePHiTiC Posted January 4, 2007 Posted January 4, 2007 I'm using the following to grab a date from the GUI calendar: $date = GUICtrlCreateMonthCal ( today(), 30, 132, 240, 190) The $date is coming out as yyyy/mm/dd. I have two questions about this ... 1) how do I get the 4-digit year into a 2-digit format? 2) how can I get the 2-digit year as a variable, the month as a variable, and the day as a variable as I'll be using each part separately? Thanks for the help! MePH
/dev/null Posted January 4, 2007 Posted January 4, 2007 I'm using the following to grab a date from the GUI calendar: $date = GUICtrlCreateMonthCal ( today(), 30, 132, 240, 190) The $date is coming out as yyyy/mm/dd. I have two questions about this ... 1) how do I get the 4-digit year into a 2-digit format? 2) how can I get the 2-digit year as a variable, the month as a variable, and the day as a variable as I'll be using each part separately? Thanks for the help! MePH 2nd first. StringSplit, separator is "/". Now for the first question: StringRight() on the array element that represents the year. Cheers Kut __________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf *
MePHiTiC Posted January 4, 2007 Author Posted January 4, 2007 2nd first. StringSplit, separator is "/". Now for the first question: StringRight() on the array element that represents the year.CheersKutAWESOME Kut ... Both worked perfectly ... Thanks for the help!MePH
Anonymouse Posted June 27, 2008 Posted June 27, 2008 AWESOME Kut ... Both worked perfectly ... Thanks for the help! MePH I know this is a bit old, but I thought I'd add to it instead of making a new thread I still don't get it. I read the helpfile, and I just don't see how to turn this into a string the split the string. here is what I have: #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <DateTimeConstants.au3> Global $Calendar, $date, $day, $month, $year, $string, $split $Calendar = GUICtrlCreateMonthCal("@YEAR/@MON/@MDAY", 308, 16, 191, 148, BitOR($MCS_NOTODAY,$WS_BORDER), 0) $date = GUICtrlRead($Calendar) $String = String($date) $Split = StringSplit($string, '/') $day = StringRight($split, 2) $month = StringMid($split, 6, 2) $year = StringLeft($split, 4) MSGBox(0, "Date", $month) I'm not looking for an answer by any means, more so a "hey! idiot! did you try reading _____? or what the hell were you thinking when you wrote ____?" just keepin the spirits up. children may smile; the wise ponder- Dr. Holmes of Hardvard Medical School on an Ether BingeLove Makes The World Go Round?So does five shots of tequila. What's your point?[quote name='Valik' date='Jun 5 2008, 05:13 PM']wraithdu, 24 hours. Said I have a bad attitude, just driving the point home with a ban.[/quote]This is classic. :)
enaiman Posted June 27, 2008 Posted June 27, 2008 StringSplit - if successful - returns an array. You have to use array elements in your StringRight, StringMid ... statements ($split[1], $split[2] ...) and not $split (the array ID) as you have used. SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script wannabe "Unbeatable" Tic-Tac-Toe Paper-Scissor-Rock ... try to beat it anyway :)
Anonymouse Posted June 28, 2008 Posted June 28, 2008 StringSplit - if successful - returns an array. You have to use array elements in your StringRight, StringMid ... statements ($split[1], $split[2] ...) and not $split (the array ID) as you have used. So I'm guessing I didn't do stringsplit right? Or what's my problem here, because even the arrays didn't work. children may smile; the wise ponder- Dr. Holmes of Hardvard Medical School on an Ether BingeLove Makes The World Go Round?So does five shots of tequila. What's your point?[quote name='Valik' date='Jun 5 2008, 05:13 PM']wraithdu, 24 hours. Said I have a bad attitude, just driving the point home with a ban.[/quote]This is classic. :)
enaiman Posted June 30, 2008 Posted June 30, 2008 The problem(s): you're doing a StringLeft ... after StringSplit (after the string was splitted in components) ... and ... your code is kinda messed up ... Here is how it should work: #include <DateTimeConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 226, 204, 193, 125) $MonthCal1 = GUICtrlCreateMonthCal("2008/06/30", 16, 16, 193, 169) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $MonthCal1 $String = GUICtrlRead($MonthCal1) $Split = StringSplit($string, '/') $day = $split[3] $month = $split[2] $year = $split[1] MSGBox(0, "Date", $month) EndSwitch WEnd SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script wannabe "Unbeatable" Tic-Tac-Toe Paper-Scissor-Rock ... try to beat it anyway :)
Diana (Cda) Posted September 6, 2008 Posted September 6, 2008 (edited) enaiman, your calendar control or wrapper, or whatever it might be called, is fabulous! I've been looking for something like this for years! Thanks. I've run into 2 snags that I can't seem to get myself out of. 1. I can't figure out how to make my additional date entry work, the one that adds a day of the week. I've added the custom variable code to get the week day in the format needed, I just don't know how to, what would one call it, activate it, or whatever. 2. This one is stupid, I'm sure. A close button I added doesn't work and I don't have enough GUI experience yet to figure out why. Here's my variation of the above:expandcollapse popup;#include <DateTimeConstants.au3> ;#include <GUIConstantsEx.au3> ; not needed since I extracted $GUI_EVENT_CLOSE syntax, etc., below from the appropriate UDF ;#include <WindowsConstants.au3> ; not needed since I extracted $WS_EX_TOPMOST syntax, etc., below from the appropriate UDF #NoTrayIcon ; AutoIt's icon doesn't show in systray TraySetIcon("Shell32.dll", 276) ; changes the icon displayed in the systray ;----- Today's date code: ------------------------------------------------------------------------- #include<Date.au3> $Today = _Now() $ShortDayMyFormat = StringMid("Sn,Mn,Tu,Wd,Th,Fr,Sa", StringInStr("SunMonTueWedThuFriSat", _DateDayOfWeek(@WDAY,1) ), 2) ;-------------------------------------------------------------------------------------------------- ;========================================================================= Global Const $GUI_EVENT_CLOSE = -3 ; by using this constant, could leave out reference to "#include <GUIConstants.au3>", which in turn referenced this variable, with this exact value, from "GUIConstantsEx.au3" Global Const $WS_EX_TOPMOST = 0x00000008 ; put this in so that no need to have UDF present when compiling $Form1 = GUICreate("Date Picker", 225, 230, 750, 125, -1, $WS_EX_TOPMOST) ; width, height, left, top, "-1, $WS_EX_TOPMOST" makes GUI topmost $MonthCal1 = GUICtrlCreateMonthCal($Today, 16, 16, 193, 169) ; left, top, width, height GUISetIcon("Shell32.dll", 276) ; this changes icon in upper left-hand corner to your chosen one ;---------------------------------------------------------- $Info = GUICtrlCreateLabel("?", 25, 200, 15, 15) ; left, top, width, height GUICtrlSetTip(-1, "Find and choose any date and click on it." & @CRLF & "It will then be sent to the clipboard.") ; label tooltip ;---------------------------------------------------------- $Close = GUICtrlCreateButton("Close", 160, 195, 50, 25, 0) ; left, top, width, height GUICtrlSetOnEvent(-1, "Close") GUICtrlSetTip(-1, "Close and exit.") ; button tooltip ; button tooltip ; ---------------------- GUISetState(@SW_SHOW) ;========================================================================= While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $MonthCal1 $String = GUICtrlRead($MonthCal1) $Split = StringSplit($string, '/') $day = $split[3] $month = $split[2] $year = $split[1] ;MSGBox(0, "Date", $month) ClipPut($year & "." & $month & "." & $day & "." & $ShortDayMyFormat) Sleep(100) Beep(1000,50) EndSwitch WEnd Func Close() Exit ; finished EndFunc ;==>close (Pls, pls ignore the idiosyncratic way I have with the UDFs, thanks!) Cheers. Edited September 6, 2008 by Diana (Cda)
enaiman Posted September 7, 2008 Posted September 7, 2008 (edited) @Diana (Cda) The exit problem is solved by removing the OnEventMode function call - you have combined the 2 styles in your script and it didn't work (I've removed that function call and added the correct entry). Your first issue: I'm afraid I don't understand what do you mean??? expandcollapse popup#NoTrayIcon ; AutoIt's icon doesn't show in systray TraySetIcon("Shell32.dll", 276) ; changes the icon displayed in the systray ;----- Today's date code: ------------------------------------------------------------------------- #include<Date.au3> $Today = _Now() $ShortDayMyFormat = StringMid("Sn,Mn,Tu,Wd,Th,Fr,Sa", StringInStr("SunMonTueWedThuFriSat", _DateDayOfWeek(@WDAY,1) ), 2) ;-------------------------------------------------------------------------------------------------- ;========================================================================= Global Const $GUI_EVENT_CLOSE = -3 ; by using this constant, could leave out reference to "#include <GUIConstants.au3>", which in turn referenced this variable, with this exact value, from "GUIConstantsEx.au3" Global Const $WS_EX_TOPMOST = 0x00000008 ; put this in so that no need to have UDF present when compiling $Form1 = GUICreate("Date Picker", 225, 230, 750, 125, -1, $WS_EX_TOPMOST) ; width, height, left, top, "-1, $WS_EX_TOPMOST" makes GUI topmost $MonthCal1 = GUICtrlCreateMonthCal($Today, 16, 16, 193, 169) ; left, top, width, height GUISetIcon("Shell32.dll", 276) ; this changes icon in upper left-hand corner to your chosen one ;---------------------------------------------------------- $Info = GUICtrlCreateLabel("?", 25, 200, 15, 15) ; left, top, width, height GUICtrlSetTip(-1, "Find and choose any date and click on it." & @CRLF & "It will then be sent to the clipboard.") ; label tooltip ;---------------------------------------------------------- $Close = GUICtrlCreateButton("Close", 160, 195, 50, 25, 0) ; left, top, width, height ;GUICtrlSetOnEvent(-1, "Close") - THIS is used only for OnEventMode - in this form of script it doesn't work GUICtrlSetTip(-1, "Close and exit.") ; button tooltip ; button tooltip ; ---------------------- GUISetState(@SW_SHOW) ;========================================================================= While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $MonthCal1 $String = GUICtrlRead($MonthCal1) $Split = StringSplit($string, '/') $day = $split[3] $month = $split[2] $year = $split[1] ;MSGBox(0, "Date", $month) ClipPut($year & "." & $month & "." & $day & "." & $ShortDayMyFormat) Sleep(100) Beep(1000,50) Case $Close ;replaces the Close function call (wrongly used in OnEventMode) Exit EndSwitch WEnd Edited September 7, 2008 by enaiman SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script wannabe "Unbeatable" Tic-Tac-Toe Paper-Scissor-Rock ... try to beat it anyway :)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now